Pagini recente » Cod sursa (job #937832) | Cod sursa (job #496092) | Cod sursa (job #1970971) | Cod sursa (job #224951) | Cod sursa (job #45142)
Cod sursa(job #45142)
// Problema cutii
#include <stdio.h>
#define MAX 3501
int d[MAX][3];
int pozitie( int st, int dr )
{
int piv = d[st][0];
int L,l,h;
int i=st-1, j = dr+1;
do{
do{ i++; }while( d[i][0] < piv );
do{ j--; }while( d[j][0] > piv );
if( i < j )
if( d[i][0] == d[j][0] )
{
if( d[i][1] == d[j][1] )
{
if( d[j][2] < d[i][2] )
{
L = d[i][0]; l = d[i][1]; h = d[i][2];
d[i][0] = d[j][0];
d[i][1] = d[j][1];
d[i][2] = d[j][2];
d[j][0] = L; d[j][1] = l; d[j][2] = h;
}
}
else if( d[j][1] < d[i][1] )
{
L = d[i][0]; l = d[i][1]; h = d[i][2];
d[i][0] = d[j][0];
d[i][1] = d[j][1];
d[i][2] = d[j][2];
d[j][0] = L; d[j][1] = l; d[j][2] = h;
}
}
else
{
L = d[i][0]; l = d[i][1]; h = d[i][2];
d[i][0] = d[j][0];
d[i][1] = d[j][1];
d[i][2] = d[j][2];
d[j][0] = L; d[j][1] = l; d[j][2] = h;
}
}while( i < j );
return j;
}
int qs( int st, int dr )
{
if( st == dr ) return 0;
int m = pozitie( st, dr );
qs( st, m );
qs( m+1, dr );
return 0;
}
int main()
{
int n, t, i, j, max;
freopen( "cutii.in", "rt", stdin );
scanf( "%d %d", &n, &t );
freopen( "cutii.out", "wt", stdout );
while( t )
{
t--;
for( i=1; i<=n; i++ )
scanf( "%d %d %d", &d[i][0], &d[i][1], &d[i][2] );
// qs( 1, n );
max = 1;
j =1;
for( i=1; i<n; i++ )
if( ( d[i][0] < d[i+1][0] ) && ( d[i][1] < d[i+1][1] ) && ( d[i][2] < d[i+1][1] ) )
{
j++;
if( j > max ) max = j;
}
else j=1;
printf( "%d\n", max );
}
fclose( stdin );
fclose( stdout );
return 0;
}