Cod sursa(job #1139339)

Utilizator Vasile_Catananoname Vasile_Catana Data 11 martie 2014 00:23:55
Problema Cutii Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.85 kb
program p1;
var a,b,c,v,best:array[0..3500] of longint;
    f,g:Text;
    i,n,j,u,t,k,poz:longint;


procedure Sort(l, r: longint);
var
  i, j, x, y: longint;
begin
  i := l; j := r; x := c[(l+r) DIV 2];
  repeat
    while c[i] < x do i := i + 1;
    while x < c[j] do j := j - 1;
    if i <= j then
    begin
      y := a[i]; a[i] := a[j]; a[j] := y;
      y:=b[i]; b[i]:=b[j]; b[j]:=y;
      y:=c[i]; c[i]:=c[j]; c[j]:=y;
      i := i + 1; j := j - 1;
    end;
  until i > j;
  if l < j then Sort(l, j);
  if i < r then Sort(i, r);
end;
{

function cauta(x,y,z:longint):longint;
var i_n,s_f,mid:longint;
begin
 i_n:=1;
 s_f:=v[0];
 while i_n<=s_f do
        begin
        mid:=(i_n+s_f) div 2;
         if {(x<=v[mid]) and (y<=v[mid]) and (z<=v[mid]) then
                                 s_f:=mid-1
                                 else
                                 i_n:=mid+1;
         end;
 cauta:=i_n;


end; }

begin
assign(f,'cutii.in');reset(F);
assign(g,'cutii.out');rewrite(G);
readln(f,n,t);
for k:=1 to t do begin
        for i:=1 to n do readln(f,a[i],b[i],c[i]);
        sort(1,n);
        for i:=0 to n do begin
                v[i]:=0;
                b[i]:=0;
                        end;
        for i:=n downto 1 do
                begin
                max:=0;
                j:=i+1;
                while (j<=n) and (best[j]>max) do begin
                        if (b[j]>b[i])  and (a[i]>a[j]) and (b[j]>max) then max:=b[j];
                        inc(J);
                                        end;
                v[i]:=max+1;
                best[i]:=best[i+1];
                if v[i]>best[i] then best[i]:=v[i];
                end;
        max:=-99999;
        for i:=1 to n do
                if v[i]>max then max:=v[i];
        writeln(g,max);
           end;
close(F);
close(G);
 end.