Mai intai trebuie sa te autentifici.
Cod sursa(job #221230)
Utilizator | Data | 15 noiembrie 2008 00:01:10 | |
---|---|---|---|
Problema | Cutii | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.9 kb |
#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])
{
aux=a[i][1];a[i][1]=a[i+1][1];a[i+1][1]=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;
}