Pagini recente » Cod sursa (job #1037606) | Cod sursa (job #1141433) | Cod sursa (job #1042186) | Cod sursa (job #1481347) | Cod sursa (job #127273)
Cod sursa(job #127273)
#include<stdio.h>
#include<string.h>
int 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;}}
void sol1()
{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);}}
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 sol2()
{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;
for(i=2;i<=n;i++) {m[i]=0;
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; }
printf("%d\n",m[n]);}
}
int main()
{freopen("cutii.in","r",stdin);
freopen("cutii.out","w",stdout);
scanf("%d %d",&n,&t);
sol2();
fclose(stdout);
return 0;}