Задача №1904. ???
const MaxN = 100005; MaxK = 1000006; type Integer = Longint; var i, j, k, l, m, n: Integer; p, b, e: array [1..MaxN] of Integer; a: array [1..MaxK] of Integer; function less (x, y: Integer): Boolean; begin less := (e[x] < e[y]); end; procedure heapsort (N:integer); var i, X, j, l, r: integer; begin r := N; l := (N div 2)+1; repeat if l > 1 then begin l:=l-1; X := P[l] end else if r > 1 then begin X := P[r]; P[r] := P[1]; r:=r-1 end; j := l; repeat i := j; j := j*2; if (j < r) and less (P[j], P[j+1]) then j:=j+1; if (j > r) or not less (X, P[j]) then break; P[i] := P[j] until false; P[i] := X until r = 1; end; BEGIN read (n, k); if (n < 1) OR (n > 100000) then assert (False); if (k < 1) OR (k > 100) then assert (False); fillchar (a, sizeof (a), 0); fillchar (b, sizeof (b), 191); for i := 1 to n do begin read (b[i], e[i]); if (b[i] < 0) OR (b[i] > 1000000) then assert (False); if (e[i] < 0) OR (e[i] > 1000000) then assert (False); for j := b[i] + 1 to e[i] do begin inc (a[j]); if a[j] > k then assert (False); end; end; for i := 1 to n do p[i] := i; heapsort (n); l := 0; m := 0; for i := 1 to n do if b[p[i]] >= l then begin inc (m); l := e[p[i]]; end; writeln (m); END.
Примеры
Входные данные
3 1 1 2 2 3 5 7
Выходные данные
3
Входные данные
3 2 1 3 2 4 3 5
Выходные данные
2
Входные данные
5 10 1 10 2 9 3 8 4 7 5 6
Выходные данные
1
Входные данные
4 2 2 4 3 4 1 2 1 3
Выходные данные
2
Сдать: для сдачи задач необходимо войти в систему