1 条题解

  • 0
    @ 2025-2-14 21:01:01

    Pascal :

    var n,i,j,max:longint;a,b,f:array[1..50100]of longint;
        procedure sort(l,r: longint);
          var
             i,j,x,y: longint;
          begin
             i:=l;
             j:=r;
             x:=a[(l+r) div 2];
             repeat
               while a[i]<x do
                inc(i);
               while x<a[j] do
                dec(j);
               if not(i>j) then
                 begin
                    y:=a[i];
                    a[i]:=a[j];
                    a[j]:=y;
                    y:=b[i];
                    b[i]:=b[j];
                    b[j]:=y;
                    inc(i);
                    j:=j-1;
                 end;
             until i>j;
             if l<j then
               sort(l,j);
             if i<r then
               sort(i,r);
          end;
    begin
      read(n);
      for i:=1 to n do read(a[i],b[i]);
      sort(1,n);
      for i:=1 to n do
        begin
          for j:=1 to i-1 do
            if (b[j]<b[i])and(f[j]>f[i]) then f[i]:=f[j];
          inc(f[i]);
        end;
      for i:=1 to n do if f[i]>max then max:=f[i];
      writeln(max);
    end.
    
    • 1

    信息

    ID
    610
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者