Pagini recente » Cod sursa (job #1709646) | Cod sursa (job #604293) | Cod sursa (job #2633386) | Cod sursa (job #2864233) | Cod sursa (job #868517)
Cod sursa(job #868517)
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define Nmax 3501
int N, T, maxim, k , nr = 1;
typedef struct cutie{
int l;
int L;
int h;
};
cutie v[Nmax];
int best[Nmax];
bool functie(cutie x, cutie y){
if(x.l < y.l)
return 1;
return 0;
}
inline int compara(cutie x, cutie y){
if(x.L < y.L && x.h < y.h)
return 1;
return 0;
}
void dinamica(){
best[N]=1;
maxim = 1;
for(int i = N - 1 ; i >= 1; --i){
best[i] = 1;
for(int j = i + 1; j <= N; ++j)
if(compara(v[i], v[j]) && best[i] < best[j] + 1){
best[i] = best[j] + 1;
if(best[i] > maxim)
maxim = best[i];
}
}
printf("%d\n", maxim);
}
void rezolva(){
freopen("cutii.in", "r", stdin);
freopen("cutii.out", "w", stdout);
scanf("%d %d", &N, &T);
for(; T; T--){
for(int i = 1; i <= N; ++i)
scanf("%d %d %d", &v[i].l, &v[i].L, &v[i].h);
sort(v+1, v+N+1, functie);
dinamica();
}
}
int main(){
rezolva();
return 0;
}