Pagini recente » Cod sursa (job #1142994) | Cod sursa (job #1309847) | Cod sursa (job #1578732) | Cod sursa (job #2788175) | Cod sursa (job #2432972)
#include <bits/stdc++.h>
using namespace std;
ifstream f("cutii.in");
ofstream g("cutii.out");
const int NMAX = 3510;
struct cutie{
int x,y,z;
}v[NMAX];
int n,t,best[NMAX];
bool cmp(const cutie &X, const cutie &Y){
if(X.x < Y.x) return 1;
if(X.x == Y.x){
if(X.y < Y.y) return 1;
if(X.y == Y.y && X.z < Y.z) return 1;
}
return 0;
}
int main(){
int i,j;
f >> n >> t;
while(t){
for(i = 1 ; i <= n ; i++)
f >> v[i].x >> v[i].y >> v[i].z;
sort(v + 1, v + n + 1, cmp);
//for(i = 1 ; i <= n ; i++)
// g << v[i].x << " " << v[i].y << " " << v[i].z << "\n";
best[n] = 1;
for(i = n ; i > 0 ; i--)
for(j = i + 1 ; j <= n ; j++){
if(v[i].x <= v[j].x && v[i].y <= v[j].y && v[i].z <= v[j].z){
best[i] = max(best[i], best[j] + 1);
j = n + 5;
}
}
int ans = 0;
for(i = 1 ; i <= n ; i++)
ans = max(ans, best[i]);
g << ans << "\n";
//g << best[i] << " ";
memset(best, 0, n + 5);
t--;
}
return 0;
}