Задача №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
Сдать: для сдачи задач необходимо войти в систему