Pagini recente » Cod sursa (job #1709092) | Cod sursa (job #144613) | Cod sursa (job #670840) | Cod sursa (job #1946377) | Cod sursa (job #340871)
Cod sursa(job #340871)
#include <cstdio>
using namespace std ;
struct cutie { int x, y, z; } ;
cutie C [3500]; int X [3501], F [3501] ;
void numara ( int n ) {
int i , e ; cutie & c = C[X[n]] ; F[n]=1 ;
for ( i=n-1; F[n] <= i; --i ) { cutie & cc = C[X[i]];
if ( (c.y>cc.y) && (c.z>cc.z) ) {
if ( 0 == F[i] ) { (void)numara(i); } e=1+F[i];
if ( e>F[n] ) { F[n]=e; }
}
}
}
int
main ( ) {
FILE * f = fopen ("cutii.in", "r"), * g = fopen ( "cutii.out", "w" ) ;
int n, t, s, i, x, y, z ;
fscanf ( f, "%d %d", &n, &t);
for ( s=0; t>s; ++s ) {
for ( i=0; n>i; ++i ) {
fscanf ( f, "%d %d %d", &x, &y, &z ) ;
C[i].x=x; C[i].y=y; C[i].z=z; X[x]=i; F[x]=0;
}
numara(n); z=F[n];
for ( i=n-1; z<=i; --i ) {
if (0 == F[i]) { numara(i); }
if (F[i]>z) { z= F[i]; }
}
fprintf ( g, "%d\n", z ) ;
}
fclose (f); fclose(g); return 0 ;
}