Pagini recente » Cod sursa (job #268227) | Cod sursa (job #717254) | Cod sursa (job #148295) | Cod sursa (job #633581) | Cod sursa (job #2282700)
#include <bits/stdc++.h>
using namespace std;
ifstream f("cutii.in");
ofstream g("cutii.out");
const int NMAX=35e2+5;
int N, T, t, i, dp[NMAX], j;
struct Box
{
int X, Y, Z;
};
Box A[NMAX];
bool cmp (Box A, Box B)
{
if(A.X<B.X)
return false;
if(A.X==B.X && A.Y<B.Y)
return false;
if(A.X==B.X && A.Y==B.Y && A.Z<B.Z)
return false;
return true;
};
bool check (Box A, Box B) // Daca in cutia A, incape cutia B
{
if(A.X>B.X && A.Y>B.Y && A.Z>B.Z)
return true;
return false;
}
int main()
{
f>>N>>T;
for(t=1; t<=T; ++t)
{
for(i=1; i<=N; ++i)
{
f>>A[i].X>>A[i].Y>>A[i].Z;
dp[i]=0;
}
sort(A+1, A+N+1, cmp);
dp[1]=1;
for(i=2; i<=N; ++i)
{
int Max=0;
bool oki=false;
for(j=1; j<i; j++)
if(check(A[j], A[i]))
{
oki=true;
Max=max(Max, dp[j]);
}
if(oki)
dp[i]=Max+1;
}
int ans=0;
for(i=1; i<=N; ++i)
ans=max(ans, dp[i]);
g<<ans<<'\n';
}
return 0;
}