Pagini recente » Cod sursa (job #2764278) | Cod sursa (job #1163655) | Cod sursa (job #133170) | Cod sursa (job #584912) | Cod sursa (job #7892)
Cod sursa(job #7892)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MN (3501)
typedef inline int cmp_mask(const void *, const void *);
inline int c_cmp(int c1[3], int c2[3])
{
return c1[0] < c2[0]? -1 : c1[0] > c2[0]? 1 : c1[1] < c2[1]? -1 : c1[1] > c2[1]? 1 : c1[2]-c2[2];
}
inline int fits(int c1[3], int c2[3])
{
return (c1[0] < c2[0] && c1[1] < c2[1] && c1[2] < c2[2]);
}
int main()
{
freopen("cutii.in", "r", stdin);
freopen("cutii.out", "w", stdout);
int n[MN][3], c[MN];
int N, T, X, i, j;
for(scanf("%d %d", &N, &T); T --; ) {
for(i = 0; i < N; ++ i)
scanf("%d %d %d", &n[i][0], &n[i][1], &n[i][2]);
/*
for(i = 0; i < N; ++ i)
printf("%d %d %d\n", n[i][0], n[i][1], n[i][2]); printf("\n");
*/
qsort(n, N, sizeof(n[0]), (cmp_mask*)c_cmp);
/*
for(i = 0; i < N; ++ i)
printf("%d %d %d\n", n[i][0], n[i][1], n[i][2]); printf("\n");
*/
for(X = c[0] = i = 1; i < N; ++ i) for(c[i] = 1, j = 0; j < i; ++ j) if(c[j]+1 > c[i] && fits(n[j], n[i]))
c[i] = c[j]+1;
for(i = 0; i < N; ++ i) if(c[i] > X)
X = c[i];
printf("%d\n", X);
}
return 0;
}