http://acm.pku.edu.cn/JudgeOnline/problem?id=1089
Код:
program PKU1089; {$I-,S-,Q-,R-} const maxn = 1000010; type integer = longint; var a: array[1..maxn] of integer; x: array[1..maxn] of boolean; n: integer; procedure prepare; var u, v, i: integer; begin fillchar(x, sizeof(x), false); fillchar(a, sizeof(a), 0); readln(n); for i := 1 to n do begin read(u, v); inc(a[u]); dec(a[v]); x[u] := true; x[v] := true; end; end; procedure main; var now, i, j: integer; begin i := 1; now := 0; while i < maxn do begin now := now + a[i]; if now = 0 then begin if x[i] then writeln(i, ' ', i); i := i + 1; end else begin j := i; while now > 0 do begin j := j + 1; now := now + a[j]; end; writeln(i, ' ', j); i := j + 1; end; end; end; begin prepare; main; end.