Cod sursa(job #2282700)

Utilizator andreiomd1Onut Andrei andreiomd1 Data 14 noiembrie 2018 13:16:33
Problema Cutii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("cutii.in");
ofstream g("cutii.out");

const int NMAX=35e2+5;

int N, T, t, i, dp[NMAX], j;

struct Box
{
    int X, Y, Z;
};

Box A[NMAX];

bool cmp (Box A, Box B)
{
    if(A.X<B.X)
        return false;

    if(A.X==B.X && A.Y<B.Y)
        return false;

    if(A.X==B.X && A.Y==B.Y && A.Z<B.Z)
        return false;

    return true;
};

bool check (Box A, Box B) // Daca in cutia A, incape cutia B
{
    if(A.X>B.X && A.Y>B.Y && A.Z>B.Z)
        return true;
    return false;
}

int main()
{


    f>>N>>T;

    for(t=1; t<=T; ++t)
    {
        for(i=1; i<=N; ++i)
        {
            f>>A[i].X>>A[i].Y>>A[i].Z;

            dp[i]=0;
        }

        sort(A+1, A+N+1, cmp);

        dp[1]=1;

        for(i=2; i<=N; ++i)
        {
            int Max=0;
            bool oki=false;

            for(j=1; j<i; j++)
                if(check(A[j], A[i]))
                {
                    oki=true;

                    Max=max(Max, dp[j]);
                }

            if(oki)
                dp[i]=Max+1;
        }

        int ans=0;

        for(i=1; i<=N; ++i)
            ans=max(ans, dp[i]);

        g<<ans<<'\n';
    }

    return 0;
}