Cod sursa(job #1045879)

Utilizator serbanSlincu Serban serban Data 2 decembrie 2013 10:54:19
Problema Cutii Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

int n,t,lis[3501],maxx;
struct cutie{
int x,y,z,a;
};
cutie c[3501];
int cmp(cutie a,cutie b)
{
    if(a.x==b.x)
    {
        if(a.y==b.y)
            return a.z<b.z;
        return a.y<b.y;
    }
    return a.x<b.x;

}


int main()
{
    int i,j,a;
    freopen("cutii.in","r",stdin);
    freopen("cutii.out","w",stdout);
    cin>>n>>t;
    while(t>0)
    {
        for(i=1;i<=n;i++)
        {
            cin>>c[i].x>>c[i].y>>c[i].z;
            c[i].a=c[i].y*c[i].z;
        }
        sort(c+1,c+n+1,cmp);
        lis[n]=1;
        for(i=n-1;i>=1;i--)
        {
            maxx=0;
            for(j=i+1;j<=n;j++)
            {
                if(c[i].y<c[j].y && c[i].z<c[j].z && c[i].a<c[j].a && maxx<lis[j])
                {
                    maxx=lis[j];
                }
            }
            lis[i]=maxx+1;
        }
        maxx=1;
        for(i=1;i<=n;i++)
        {
            if(maxx<lis[i])
                maxx=lis[i];
        }
        cout<<maxx<<"\n";
        t--;
    }
    return 0;
}