Cod sursa(job #833573)

Utilizator wzrdwzrd tst wzrd Data 12 decembrie 2012 19:06:29
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <algorithm>
#define DN 3505
using namespace std;

struct trei {
    int a,b,c;
}cutie[DN];

int n,t,lmax[DN];

static bool operator < ( const trei &a, const trei &b ) {
    return a.a < b.a ;
}

static inline bool check (int i, int j) {
    return (cutie[j].b<cutie[i].b&&cutie[j].c<cutie[i].c&&lmax[i]<=lmax[j]);
}

int main()
{
    freopen ( "cutii.in", "r", stdin ) ;
    freopen ( "cutii.out", "w", stdout ) ;
    scanf("%d %d",&n,&t);
    for(; t; --t) {
        for(int j=1; j<=n; ++j) scanf("%d %d %d",&cutie[j].a,&cutie[j].b,&cutie[j].c);
        sort(cutie+1,cutie+n+1);
        int sol=1;
        for(int i=1; i<=n; ++i) {
            lmax[i]=1;
            for(int j=i-1; j>0; --j) {
                if (cutie[j].b<cutie[i].b&&cutie[j].c<cutie[i].c&&lmax[i]<=lmax[j]) lmax[i]=lmax[j]+1;
                sol=max(sol,lmax[i]);
            }
        }
        printf("%d\n",sol);
    }
    return 0;
}