Cod sursa(job #2282706)

Utilizator andreiomd1Onut Andrei andreiomd1 Data 14 noiembrie 2018 13:25:28
Problema Cutii Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 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[i], A[j]))
                    dp[i]=max(dp[i], dp[j]);

            dp[i]++;
        }

        int ans=0;

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

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

    return 0;
}