Cod sursa(job #1243366)

Utilizator radu_cebotariRadu Cebotari radu_cebotari Data 15 octombrie 2014 20:55:46
Problema Cutii Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream in("cutii.in");
ofstream out("cutii.out");

struct cutie{
    int x,y,z;
};
cutie v[4000];
int n,best[4000];

void init()
{

    for(int i = 1 ; i <= n ; i++)
        best[i] = 0;
}

void citire()
{

    for(int i = 1 ; i <= n ; i++)
        in>>v[i].x>>v[i].y>>v[i].z;
}

bool comp(cutie a,cutie b)
{

    if(a.x == b.x)
        if(a.y == b.y)
            return a.z < b.z;
         else return a.y < b.y;
    else return a.x < b.x;
}
void solve()
{

    sort(v,v+n+1,comp);
    init();
    best[1] = 1;
    int sol = 0,i,j;
    for(i = 2 ; i <= n ; i ++)
    {
        best[i] = 1;
        for(j = 1 ; j <= i-1 ; j++)
            if(v[i].x > v[j].x && v[i].y > v[j].y && v[i].z > v[j].z)
                 best[i] = max(best[i],best[j] + 1);
        sol = max(sol,best[i]);
    }
    out<<sol<<"\n";
}

int main()
{

    int T;
    in>>n>>T;
    for( ; T ; --T){
        citire();
        solve();
    }
    return 0;
}