Pagini recente » Cod sursa (job #1752884) | Cod sursa (job #34476) | Cod sursa (job #2909967) | Cod sursa (job #2146969) | Cod sursa (job #1654485)
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
#define DIM 3503
const int INF = 100000;
int dp[DIM], hop;
struct cutie {
int a, b, c;
} V[DIM], ram[DIM];
bool cmp(cutie x, cutie y);
int main() {
freopen("cutii.in","r",stdin);
freopen("cutii.out","w",stdout);
int N, T;
scanf("%d %d\n", &N, &T);
while(T) {
--T;
for(int i = 1; i <= N; ++i) {
scanf("%d %d %d\n", &V[i].a, &V[i].b, &V[i].c);
}
sort(V + 1, V + 1 + N, cmp);
memset(dp, INF, sizeof(dp));
dp[N] = 1;
hop = 1;
ram[1] = V[N];
int ans = 0;
for(int i = N - 1; i > 0; --i) {
for(int j = i + 1; j <= N; ++j) {
if(V[i].a < V[j].a && V[i].b < V[j].b && V[i].c < V[j].c) {
dp[i] = max(dp[i], dp[j] + 1);
}
}
ans = max(ans, dp[i]);
}
cout << ans << '\n';
}
return 0;
}
bool cmp(cutie x, cutie y) {
if(x.a == y.a) {
if(x.b == y.b) {
return x.c < y.c;
}
return x.b < y.b;
}
return x.a < y.a;
}