Pagini recente » Cod sursa (job #1919498) | Cod sursa (job #1109605) | Cod sursa (job #1057813) | Cod sursa (job #1203808) | Cod sursa (job #1691113)
#include <cstdio>
#include <algorithm>
#define DIM 3505
using namespace std;
struct data{
int x, y, z;
int indi;
}v[DIM];
int best[DIM];
int d[DIM];
int caut( int n, int x ){
int pas = 1 << 12;
int i = 0;
while( pas ){
if( i + pas <= n && v[d[i+pas]].x < v[x].x && v[d[i+pas]].y < v[x].y )
i += pas;
pas /= 2;
}
return i;
}
bool cmp( data a, data b ){
return ( a.x < b.x );
}
int main()
{
freopen("cutii.in","r",stdin);
freopen("cutii.out","w",stdout);
int n, m, i, j, s, t, k, ma;
scanf("%d%d",&n,&m);
while( m-- ){
for( i = 1; i <= n; ++i )
scanf("%d%d%d",&v[i].x,&v[i].y,&v[i].z);
sort( v + 1, v + 1 + n, cmp );
ma = -(1<<23);
best[1] = d[1] = t = 1;
for( i = 2; i <= n; ++i ){
k = caut( t, i );
best[i] = k + 1;
d[k+1] = i;
if( k + 1 > t ) t = k + 1;
if( ma < best[i] ) ma = best[i];
}
printf("%d\n",ma);
for( i = 1; i <= n; ++i )
best[i] = 0;
}
return 0;
}