Cod sursa(job #28470)

Utilizator magicMaria Ionescu magic Data 7 martie 2007 21:08:56
Problema Cutii Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.27 kb
program cutii;

const
   inputfile  = 'cutii.in';
   outputfile = 'cutii.out';
   NMAX	      = 3500;
   TMAX	      = 100;

type
   intN	  = 1..NMAX;
   intT	  = 1..TMAX;
   xyz	  = array[intN] of integer;
   sorted = array[intN] of intN;
   
var
   N,i	 : intN;
   T,it	 : intT;
   x,y,z : xyz;
   a	 : sorted;
   f,g	 : text;

procedure add(var a : sorted; i:intN; xx,yy,zz:integer);
var j : intN;
begin
   a[i]:= i;
   j:=i-1;
   while (j>0) and (x[a[j]]<xx) do
   begin
      a[j+1]:=a[j];
      dec(j);
   end;
   while (j>0) and (x[a[j]]=xx) and (y[a[j]]<yy) do
   begin
      a[j+1]:=a[j];
      dec(j);
   end;
   while (j>0) and (x[a[j]]=xx) and (y[a[j]]=yy) and (z[a[j]]=zz) do
   begin
      a[j+1]:=a[j];
      dec(j);
   end;
   a[j+1]:=i;
end; { add }

procedure solve(a : sorted; N:intN);
var   i,nr : intN;
begin
   nr:=1;
   i:=2;
   while (i<=N) and (x[a[i]]<x[a[i-1]]) and (y[a[i]]<y[a[i-1]]) and (z[a[i]]<z[a[i-1]]) do
   begin
      inc(i);
      inc(nr);
   end;
   writeln(g,nr);
end; { solve }

begin
   assign(g,outputfile); rewrite(g);
   assign(f,inputfile); reset(f);
   readln(f,N,T);
   for it:=1 to T do
   begin
      for i:=1 to N do
      begin
	 readln(f,x[i],y[i],z[i]);
	 add(a,i,x[i],y[i],z[i]);
      end;
      solve(a,N);
   end;
   close(f);
   close(g);
end.