Pagini recente » Cod sursa (job #613221) | Cod sursa (job #1432915) | Cod sursa (job #711720) | Cod sursa (job #1212188) | Cod sursa (job #592213)
Cod sursa(job #592213)
#include <cstdio>
#include <fstream>
#include <algorithm>
using namespace std;
#define nn 3501
struct cutii {
int a,b,c;
};
cutii v[nn];
int f[nn];
int n,t;
bool compara (cutii x,cutii y){
if(x.a<y.a) return 1;
if(x.a==y.a&&x.b<y.b) return 1;
if(x.a==y.a&&x.b==y.b&&x.c<y.c) return 1;
return 0;}
int solve (){
int s=0;
for(int i=2;i<=n;++i){
f[i]=0;
for(int j=i-1;j;--j)
if(f[j]+1>f[i] && v[i].a>v[j].a && v[i].b>v[j].b && v[i].c>v[j].c){
f[i]=f[j]+1;
if(f[i]>s)
s=f[i];
}
}
return s+1;}
int main ()
{
ifstream in ("cutii.in");
freopen ("cutii.out","w",stdout);
for(in>>n>>t;t;--t){
for(int i=1;i<=n;++i)
in>>v[i].a>>v[i].b>>v[i].c;
sort(v+1,v+n+1,compara);
printf("%d\n",solve ());
}
in.close ();
return 0;}