Pagini recente » Cod sursa (job #2234265) | Cod sursa (job #644009) | Cod sursa (job #1326164) | Cod sursa (job #2963749) | Cod sursa (job #340869)
Cod sursa(job #340869)
#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;
}
for ( i=n-1; 0<i; --i ) { if (0 == F[i]) { numara(n); } }
z=F[1]; for ( i=2; n>=i; ++i ) { if ( F[i]>z ) { z=F[i]; } }
fprintf ( g, "%d\n", z ) ;
}
fclose (f); fclose(g); return 0 ;
}