Pagini recente » Cod sursa (job #1282460) | Cod sursa (job #2943077) | Cod sursa (job #1787140) | Cod sursa (job #1909859) | Cod sursa (job #127282)
Cod sursa(job #127282)
#include<stdio.h>
#include<string.h>
int l[3501][3],n,i,j,t,m[3501];
int max;
int poz(int i,int j)
{int x=0,y=-1,aux;
while(i<j)
{if(l[i][0]>l[j][0])
{aux=x;x=-y;y=-aux;
aux=l[i][0];l[i][0]=l[j][0];l[j][0]=aux;
aux=l[i][1];l[i][1]=l[j][1];l[j][1]=aux;
aux=l[i][2];l[i][2]=l[j][2];l[j][2]=aux;}
i=i+x;j=j+y;}
return i;}
void sort(int i,int j)
{if(i>=j) return;
int k=poz(i,j);
sort(i,k-1);
sort(k+1,j);}
void sol()
{for(;t;t--){
for(i=1;i<=n;i++) scanf("%d %d %d",&l[i][0],&l[i][1],&l[i][2]);
sort(1,n);
m[1]=1;
max=1;
for(i=2;i<=n;i++) {m[i]=1;
for(j=1;j<i;j++)
if(l[j][0]<l[i][0] && l[j][1]<l[i][1] && l[j][2]<l[i][2])
if(m[j]+1>m[i]) m[i]=m[j]+1;
if(m[i]>max) max=m[i];}
printf("%d\n",max);}
}
int main()
{freopen("cutii.in","r",stdin);
freopen("cutii.out","w",stdout);
scanf("%d %d",&n,&t);
sol();
fclose(stdout);
return 0;}