Pagini recente » Cod sursa (job #2168122) | Cod sursa (job #286720) | Cod sursa (job #227731) | Cod sursa (job #658043) | Cod sursa (job #221229)
Cod sursa(job #221229)
#include<iostream>
#include<stdio.h>
FILE *f,*g;
void ordonez(int a[3501][4],int n)
{
int i,j,t=1,aux;
while(t)
{
t=0;
for(i=1;i<=n-1;i++)
if(a[i][1]>a[i+1][1]&&a[i][2]>a[i+1][2]&&a[i][3]>a[i+1][3])
{
aux=a[i][1];a[i][1]=a[i+1][1];a[i+1][1]=aux;
aux=a[i][2];a[i][2]=a[i+1][2];a[i+1][2]=aux;
aux=a[i][2];a[i][3]=a[i+1][3];a[i+1][3]=aux; t=1;
}
}
}
int cmlsc(int a[3501][4],int n)
{
int l[3501],i,j,max,imax,k;
l[n]=1;
for(k=n-1;k>=1;k--)
{
l[k]=1;i=k;
do{i++;}while(a[k][1]>a[i][1]&&a[k][2]>a[i][2]&&a[k][3]>a[i][3]&&i<n);
if(a[k][1]<a[i][1]&&a[k][2]<a[i][2]&&a[k][3]<a[i][3]) l[k]=l[i]+1;
}
max=-1;
for(i=1;i<=n;i++)
if(l[i]>max) {max=l[i];imax=i;}
return max;
}
int main()
{
f=fopen("cutii.in","r");
g=fopen("cutii.out","w");
int n,t,a[3501][4];
fscanf(f,"%d %d",&n,&t);
int i,j;
for(i=1;i<=t;i++)
{
for(j=1;j<=n;j++)
fscanf(f,"%d %d %d",&a[j][1],&a[j][2],&a[j][3]);
ordonez(a,n);
fprintf(g,"%d\n",cmlsc(a,n));
}
return 0;
}