Cod sursa(job #1874696)

Utilizator FrequeAlex Iordachescu Freque Data 10 februarie 2017 12:38:41
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

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

struct coord
{
    int val;
    int x;
    int y;
    int z;
};

const int NMAX = 100 + 5;

int n, t, maxx;
coord v[NMAX], dp[NMAX];

void read()
{
    for (int i = 1; i <= n; ++i)
        fin >> v[i].x >> v[i].y >> v[i].z;
}

bool cmp(coord a, coord b)
{
    if(a.x > b.x) return a.x < b.x;
}

int main()
{
    fin >> n >> t;
    while (t--)
    {
        read();
        sort(v + 1, v + n + 1, cmp);
        dp[n].val = 1;
        dp[n].x = v[n].x;
        dp[n].y = v[n].y;
        dp[n].z = v[n].z;
        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].val > maxx)
                        maxx = dp[j].val;
            dp[i].val = maxx + 1;
        }
        fout << dp[1].val << '\n';
    }
}