Cod sursa(job #127266)

Utilizator razvi9Jurca Razvan razvi9 Data 23 ianuarie 2008 18:13:17
Problema Cutii Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<stdio.h>
#include<string.h>
short l[3501][3],n,i,j,t,gr[3501],max,m[3501];
char a[3501][3501],viz[3501];
void DF(int vf)
{viz[vf]=1;
 m[vf]=1;
 for(int i=1;i<=n;i++)
  if(a[vf][i]){
   if(!viz[i]) DF(i);
   if(m[vf]<m[i]+1) m[vf]=m[i]+1;}}
   
int main()
{freopen("cutii.in","r",stdin);
 freopen("cutii.out","w",stdout);
 scanf("%d %d",&n,&t);
 for(;t;t--){
  memset(a,0,sizeof(a));
  memset(viz,0,sizeof(viz));   
  memset(m,0,sizeof(m));     
  memset(gr,0,sizeof(gr));
  max=0;
  for(i=1;i<=n;i++)
   scanf("%d %d %d",&l[i][0],&l[i][1],&l[i][2]);
  for(i=1;i<=n;i++)
   for(j=1;j<=n;j++)
    if(l[j][0]<l[i][0]&&l[j][1]<l[i][1]&&l[j][2]<l[i][2])
     a[i][j]=1,gr[j]++;
  for(i=1;i<=n;i++)
   if(!gr[i]){DF(i);
    if(max < m[i]) max=m[i]; }
  printf("%d\n",max);}
 fclose(stdout);
 return 0;}