Cod sursa(job #592213)

Utilizator rudarelLup Ionut rudarel Data 27 mai 2011 07:41:52
Problema Cutii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#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;}