Cod sursa(job #2442519)

Utilizator iulianarsenoiuArsenoiu Iulian iulianarsenoiu Data 24 iulie 2019 11:42:35
Problema Cutii Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <algorithm>

using namespace std;
ifstream f("cutii.in");
ofstream g("cutii.out");
struct cutii
{
    int u,d,t;
};
cutii v[3505];
int n,m,l[3505],i,j,Max,lmax;
bool cmp(cutii x, cutii y)
{
    if(x.u<y.u || (x.u==y.u && x.d<y.d) || (x.u==y.u && x.d==y.d && x.t<y.t))
        return true;
    return false;
}
bool mm(int i, int j)
{
    if(v[j].u>v[i].u && v[j].d>v[i].d && v[j].t>v[i].t)
        return true;
    return false;
}
int main()
{
    f>>n>>m;
    for(int p=1; p<=m; p++)
    {
        for(i=1; i<=n; i++)
            f>>v[i].u>>v[i].d>>v[i].t,l[i]=0;
        sort(v+1,v+n+1,cmp);
        l[n]=1;
        lmax=0;
        for(i=n-1; i>=1; i--)
        {
            Max=0;
            for(j=i+1; j<=n; j++)
                if(mm(i,j)==true && l[j]>Max)
                    Max=l[j];
            l[i]=Max+1;
            if(l[i]>lmax)
            {
                lmax=l[i];
            }
        }
        g<<lmax<<'\n';
    }
    return 0;
}