Pagini recente » Cod sursa (job #847925) | Cod sursa (job #1841790) | Cod sursa (job #1490142) | Cod sursa (job #955430) | Cod sursa (job #370920)
Cod sursa(job #370920)
#include <stdio.h>
#define Nmax 3610
struct cutie{
int x,y,z;
};
cutie p[Nmax];
int n,t,b[Nmax],max,sol;
void qsort(int st,int dr)
{
int i=st,j=dr,mid=p[(st+dr)/2].x;
cutie aux;
do
{
while(p[i].x<mid) ++i;
while(p[j].x>mid) --j;
if(i<=j)
{
aux=p[i];
p[i]=p[j];
p[j]=aux;
++i;
--j;
}
}while(i<j);
if(i<dr) qsort(i,dr);
if(j>st) qsort(st,j);
}
int main()
{
int i,j;
freopen("cutii.in","r",stdin);
freopen("cutii.out","w",stdout);
scanf("%d%d",&n,&t);
while(t--)
{
sol=0;
for(i=1;i<=n;++i)
scanf("%d%d%d",&p[i].x,&p[i].y,&p[i].z);
qsort(1,n);
for(i=1;i<=n;++i)
{
max=0;
for(j=i-1;j>0;--j)
{
if(p[j].x<p[i].x && p[j].y<p[i].y && p[j].z<p[i].z)
if(max<b[j])
max=b[j];
}
b[i]=max+1;
}
for(i=1;i<=n;++i)
if(b[i]>sol)
sol=b[i];
printf("%d\n",sol);
}
}