Pagini recente » Cod sursa (job #984778) | Cod sursa (job #2485176) | Cod sursa (job #797526) | Cod sursa (job #2335200) | Cod sursa (job #3266742)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("cutii.in");
ofstream g("cutii.out");
const int nMax = 3e3 + 5e2 + 5;
int T, n;
int lis[nMax];
struct DIMENSIUNI
{
int x, y, z;
}a[nMax];
bool cmp1(DIMENSIUNI z,DIMENSIUNI b)
{
return (z.x < b.x && z.y < b.y && z.z < b.z);
}
bool cmp(DIMENSIUNI z,DIMENSIUNI b)
{
if (z.x != b.x)return z.x < b.x;
if (z.y != b.y)return z.y < b.y;
if (z.z != b.z)return z.z < b.z;
return cmp1(z,b);
}
int main()
{
f >> n >> T;
while(T){
for (int i = 1;i <= n;i++){
f >> a[i].x >> a[i].y >> a[i].z;
lis[i] = 0;
}
sort(a+1,a+n+1,cmp);
lis[0] = 0;
lis[1] = 1;
int Max = 1;
for (int i = 2;i <= n;i++){
int Max2 = 0;
for (int j = 1;j < i;j++){
if (cmp1(a[j],a[i]) == true && lis[j] > Max2)Max2 = lis[j];
}
lis[i] = Max2 + 1;
Max = max(lis[i],Max);
}
g << Max << '\n';
T--;
}
}