Pagini recente » Cod sursa (job #983952) | Cod sursa (job #1190714) | Cod sursa (job #1888656) | Cod sursa (job #493044) | Cod sursa (job #1473676)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstring>
using namespace std;
ifstream fin("cutii.in");
ofstream fout("cutii.out");
const int NMax = 3505;
struct point{
int x, y, z;
}v[NMax];
int best[NMax];
inline bool cmp(const point &a, const point &b){
if(a.x != b.x) return a.x > b.x;
if(a.y != b.y) return a.y > b.y;
if(a.z != b.z) return a.z > b.z;
return 0;
}
int main(){
int n, t, mx;
fin >> n >> t;
while(t--){
memset(best, 0, sizeof(best));
for(int i = 1; i <= n; i++){
fin >> v[i].x >> v[i].y >> v[i].z;
}
sort(v + 1, v + n + 1, cmp);
mx = 1;
for(int i = 1; i <= n; i++){
best[i] = 1;
for(int j = i - 1; j > 0; j--){
if(v[i].x < v[j].x && v[i].y < v[j].y && v[i].z < v[j].z){
if(best[j] + 1 > best[i]){
best[i] = best[j] + 1;
mx = max(mx, best[i]);
}
}
}
}
fout << mx << "\n";
}
return 0;
}