Pagini recente » Cod sursa (job #1337165) | Cod sursa (job #2331619) | Cod sursa (job #2070535) | Cod sursa (job #2279680) | Cod sursa (job #361840)
Cod sursa(job #361840)
#include<stdio.h>
struct cutii{
int x,y,z;} v[3600];
int best[3600],N,T,maxfin,max;
void qsort(int lf,int rh)
{
int st=lf,aux,dr=rh,piv=v[(st+dr)/2].x;
while(st<=dr)
{
while(v[st].x<piv)
++st;
while(v[dr].x>piv)
--dr;
if(st<=dr)
{
aux=v[st].x;
v[st].x=v[dr].x;
v[dr].x=aux;
aux=v[st].y;
v[st].y=v[dr].y;
v[dr].y=aux;
aux=v[st].z;
v[st].z=v[dr].z;
v[dr].z=aux;
++st;
--dr;
}
}
if(lf<dr)
qsort(lf,dr);
if(st<rh)
qsort(st,rh);
}
int main()
{
freopen("cutii.in","r",stdin);
freopen("cutii.out","w",stdout);
scanf("%d %d",&N,&T);
++T;
while(--T)
{
for(int i=1;i<=N;++i)
{
scanf("%d %d %d",&v[i].x,&v[i].y,&v[i].z);
}
qsort(1,N);
for(int i=1;i<=N;++i)
{
max=0;
for(int j=i;j>=1;--j)
{
if(v[i].x>v[j].x&&v[i].y>v[j].y&&v[i].z>v[j].z)
{
if(best[j]>max)
max=best[j];
}
}
best[i]=max+1;
}
for(int i=1;i<=N;++i)
if(best[i]>maxfin)
maxfin=best[i];
printf("%d\n",maxfin);
maxfin=0;
}
}