Pagini recente » Cod sursa (job #185778) | Cod sursa (job #184663) | Cod sursa (job #3174834) | Cod sursa (job #299587) | Cod sursa (job #746461)
Cod sursa(job #746461)
#include <fstream>
#include <algorithm>
using namespace std;
#define dim 3510
int best[dim],ciur[dim], n;
ifstream fin("cutii.in");
ofstream fout("cutii.out");
struct lista
{
int x, y, z;
}v[dim];
int cmp(lista a,lista b)
{
return a.x<b.x || (a.x==b.x && a.y<b.y) || (a.x==b.x && a.y==b.y && a.z<b.z);
};
int compare(int a,int b)
{
if(a>b)
return a;
return b;
}
int solve()
{
ciur[1]=best[1]=1;
int maxim, high=0;
int i, j;
for(i=2;i<=n;++i)
{
maxim=0;
for(j=i-1;j>=1;--j)
{
if(v[j].x < v[i].x)
if(v[j].y < v[i].y)
if(v[j].z < v[i].z)
maxim=compare(maxim, ciur[j]);
if (best[j]<=maxim)
break;
}
ciur[i]=maxim+1;
best[i]=compare( best[i-1] , ciur[i] );
high=compare (high,best[i]);
}
fout<<high <<'\n';
}
int main()
{
int t;
fin>>n;
fin>>t;
for( ; t ;--t)
{
for(int i=1;i<=n;++i)
fin>> v[i].x >>v[i].y >>v[i].z;
sort(v+1,v+n+1,cmp);
solve();
}
return 0;
}