Cod sursa(job #2712152)

Utilizator PatrickCplusplusPatrick Kristian Ondreovici PatrickCplusplus Data 25 februarie 2021 11:38:54
Problema Cutii Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <bits/stdc++.h>

using namespace std;

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

const int nmax = 3500;
int n, t, dp[nmax];

struct cutie{
    int x, y, z;
    bool operator < (cutie &c) const{
        if (x == c.x){
            if (y == c.y)
                return z > c.z;
            return y > c.y;
        }
        return x > c.x;
    }
}v[nmax];

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