Cod sursa(job #1948887)

Utilizator FrequeAlex Iordachescu Freque Data 1 aprilie 2017 15:19:07
Problema Cutii Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <iostream>
#include <fstream>
#include <cstring>
#include <algorithm>

using namespace std;

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

struct cutie
{
    int x;
    int y;
    int z;
};

const int NMAX = 3500 + 5;

cutie v[NMAX];
int n, t;
int dp[NMAX];

bool cmp(cutie a, cutie b)
{
    return a.x < b.x;
}

int main()
{
    int maxx;
    fin >> n >> t;
    for (int test = 1; test <= t; ++test)
    {
        memset(dp, 0, sizeof(dp));

        for (int i = 1; i <= n; ++i)
            fin >> v[i].x >> v[i].y >> v[i].z;
        sort(v + 1, v + n + 1, cmp);


        dp[n] = 1;
        for (int i = n - 1; i >= 1; --i)
        {
            maxx = 0;
            for (int j = i + 1; j <= n; ++j)
            {
                if (v[i].x < v[j].x && v[i].y < v[j].y && v[i].z < v[j].z)
                    if (dp[j] > maxx)
                    {
                        maxx = dp[j];
                    }
            }
            dp[i] = maxx + 1;
        }
        maxx = dp[1];
        for (int i = 2; i <= n; ++i)
            maxx = max(maxx, dp[i]);
        fout << maxx << '\n';
    }
    return 0;
}