Mai intai trebuie sa te autentifici.
Cod sursa(job #28087)
| Utilizator | Data | 7 martie 2007 14:48:52 | |
|---|---|---|---|
| Problema | Cutii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.97 kb |
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
struct cutie
{
int x,y,z;
};
int csort(cutie* a,cutie* b)
{
if (a->x>b->x)
return 1;
if (a->x<b->x)
return -1;
if (a->y>b->y)
return 1;
if (a->y<b->y)
return -1;
if (a->z>b->z)
return 1;
if (a->z<b->z)
return -1;
return 0;
}
int sort(const void *a,const void *b)
{
return csort((cutie*)a,(cutie*) b);
}
cutie c[3501];
int n,t,nr[3501],mx;
int main()
{
freopen("cutii.in","r",stdin);
freopen("cutii.out","w",stdout);
scanf("%d %d\n",&n,&t);
int i,j;
for (int k=0;k<t;k++)
{
for (i=0;i<n;i++)
scanf("%d %d %d\n",&c[i].x,&c[i].y,&c[i].z);
qsort((void*)c,n,sizeof(c[0]),sort);
memset(nr,0,sizeof(nr));
nr[0]=1;
mx=1;
for (i=1;i<n;i++)
{
for (j=0;j<i;j++)
if (c[i].x>c[j].x&&c[i].y>c[j].y&&c[i].z>c[j].z&&nr[i]<nr[j]+1)
nr[i]=nr[j]+1;
if (mx<nr[i])
mx=nr[i];
}
printf("%d\n",mx);
}
return 0;
}