Pagini recente » Monitorul de evaluare | Cod sursa (job #1968731) | Cod sursa (job #2915217) | Cod sursa (job #1595425) | Cod sursa (job #1243366)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream in("cutii.in");
ofstream out("cutii.out");
struct cutie{
int x,y,z;
};
cutie v[4000];
int n,best[4000];
void init()
{
for(int i = 1 ; i <= n ; i++)
best[i] = 0;
}
void citire()
{
for(int i = 1 ; i <= n ; i++)
in>>v[i].x>>v[i].y>>v[i].z;
}
bool comp(cutie a,cutie b)
{
if(a.x == b.x)
if(a.y == b.y)
return a.z < b.z;
else return a.y < b.y;
else return a.x < b.x;
}
void solve()
{
sort(v,v+n+1,comp);
init();
best[1] = 1;
int sol = 0,i,j;
for(i = 2 ; i <= n ; i ++)
{
best[i] = 1;
for(j = 1 ; j <= i-1 ; j++)
if(v[i].x > v[j].x && v[i].y > v[j].y && v[i].z > v[j].z)
best[i] = max(best[i],best[j] + 1);
sol = max(sol,best[i]);
}
out<<sol<<"\n";
}
int main()
{
int T;
in>>n>>T;
for( ; T ; --T){
citire();
solve();
}
return 0;
}