Pagini recente » Cod sursa (job #1974776) | Cod sursa (job #2532368) | Cod sursa (job #653417) | Cod sursa (job #804856) | Cod sursa (job #1247089)
#include <fstream>
#include <algorithm>
using namespace std;
#define nMax 3505
struct Cutie
{
int x, y, z;
};
Cutie C[nMax];
int DP[nMax];
int N,T,BEST;
int cmp(Cutie a,Cutie b)
{
if(a.x>b.x)
return a.x<b.x;
else if(a.x<b.x)
return a.x>b.x;
else if(a.x==b.x&&a.y>b.y)
return a.y<b.y;
else if(a.x==b.x&&a.y<b.y)
return a.y>b.y;
else if(a.x==b.x&&a.y==b.y&&a.z>b.z)
return a.z<b.z;
else if(a.x==b.x&&a.y==b.y&&a.z<b.z)
return a.z>b.z;
}
int main()
{
ifstream f("cutii.in");
ofstream g("cutii.out");
f>>N>>T;
while(T)
{
T--;
for(int i=0;i<N;++i)
f>>C[i].x>>C[i].y>>C[i].z;
sort(C,C+N,cmp);
BEST=1;
for(int i=0;i<N;++i)
{
DP[i] = 1;
for(int j=0;j<i;++j)
if((C[i].x<C[j].x&&C[i].y<C[j].y&&C[i].z<C[j].z)&&DP[j]+1>DP[i])
DP[i]=DP[j]+1;
BEST=max(BEST, DP[i]);
}
g<<BEST<<"\n";
}
return 0;
}