Cod sursa(job #11535)

Utilizator rokadaIacob Andrei Vasile rokada Data 31 ianuarie 2007 20:31:14
Problema Cutii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include<fstream.h>
struct xyz
{
 int x,y,z;
};
xyz a[3501];
int n,t,i,j,k,lg[3501];
void quick(int p,int q)
{
 int i,j,t,aux;
 if(p<q)
 {
  i=p;
  j=q;
  t=1;
  do
  {
   if(a[i].x>a[j].x)
   {
    aux=a[i].x;
    a[i].x=a[j].x;
    a[j].x=aux;
    aux=a[i].y;
    a[i].y=a[j].y;
    a[j].y=aux;
    aux=a[i].z;
    a[i].z=a[j].z;
    a[j].z=aux;
    t=!t;
   }
   if(t)
   j--;
   else
   i++;
  }while(i!=j);
  quick(p,i-1);
  quick(i+1,q);
 }
}
int main()
{
 ifstream f("cutii.in");
 ofstream g("cutii.out");
 f>>n>>t;
  while(t)
  {
  int max=0,s;
   for(i=1;i<=n;i++)
    f>>a[i].x>>a[i].y>>a[i].z;
    quick(1,n);
    for(i=n;i>=1;i--)
     {
     k=i;
     s=i;
      for(j=k-1;j>=1;j--)
    		if(a[k].x>a[j].x&&a[k].y>a[j].y&&a[k].z>a[j].z)
            {
       		lg[s]++;
            k=j;
            }
      }
   t--;
   for(i=n;i>=k;i--)
     if(lg[i]>max)
     {
      max=lg[i];
      lg[i]=0;
      }
      else
      lg[i]=0;
   g<<(max+1)<<'\n';
}
return 0;
}