Cod sursa(job #1390383)

Utilizator Ionut228Ionut Calofir Ionut228 Data 17 martie 2015 00:11:46
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream fin("cutii.in");
ofstream fout("cutii.out");

int N, T;
int maxim;
int dp[3505];

struct cutii
{
    int x, y, z;
};
cutii A[3505];

bool cmp(cutii A, cutii B)
{
    return A.x * A.y * A.z < B.x * B.y * B.z;
}

void scmax()
{
    dp[1] = 1;
    maxim = 1;
    for (int i = 2; i < N; ++i)
    {
        dp[i] = 1;
        for (int j = 1; j < i; ++j)
            if (A[i].x > A[j].x && A[i].y > A[j].y && A[i].z > A[j].z && dp[i] < dp[j] + 1)
            {
                dp[i] = dp[j] + 1;
                if (dp[i] > maxim)
                    maxim = dp[i];
            }
    }
}

int main()
{
    fin >> N >> T;
    while (T--)
    {
        for (int i = 1; i <= N; ++i)
            fin >> A[i].x >> A[i].y >> A[i].z;
        sort(A + 1, A + N + 1, cmp);

        scmax();

        fout << maxim + 1 << '\n';
    }

    fin.close();
    fout.close();
    return 0;
}