Pagini recente » Cod sursa (job #1810611) | eusebiuoji2016cls9 | Cod sursa (job #719521) | Cod sursa (job #2982806) | Cod sursa (job #2282706)
#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[i], A[j]))
dp[i]=max(dp[i], dp[j]);
dp[i]++;
}
int ans=0;
for(i=1; i<=N; ++i)
ans=max(ans, dp[i]);
g<<ans<<'\n';
}
return 0;
}