Cod sursa(job #50181)

Utilizator wazupPricop Mircea wazup Data 6 aprilie 2007 22:26:48
Problema Cutii Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <stdio.h>
#include <string.h>
struct  par { int a,b,c; };
par a[3500],b[3500];
int s[3500],n,t,i,j,k,max,c[3500];

void sort()
  {
    memset(c,0,sizeof(c));
    for (i=0;i<n;i++)
      c[b[i].a]++;
    for (i=1;i<3500&&c[i-1]<n;i++)
      c[i]+=c[i-1];
    for (i=n-1;i>=0;i--)
      a[--c[b[i].a]]=b[i];
  }

int main()
{
FILE *fin,*fout;
fin=fopen("cutii.in","rt");
fout=fopen("cutii.out","wt");
fscanf(fin,"%d %d",&n,&t);
for (k=1;k<=t;k++)
   { for (i=0;i<n;i++)
	fscanf(fin,"%d %d %d",&b[i].a,&b[i].b,&b[i].c);
     sort();
     for (i=n-1;i>=0;i--)
       { s[i]=0;
	 max=i;
	 for (j=i+1;j<n;j++)
	   if (a[i].a<a[j].a&&a[i].b<a[j].b&&a[i].c<a[j].c&&s[j]>s[max])
	      max=j;
	 s[i]=s[max]+1;
       }
     max=0;
     for (i=0;i<n;i++)
       if (s[i]>max)
	 max=s[i];
     fprintf (fout,"%d\n",max);
     }
return 0;
}