Cod sursa(job #2686489)

Utilizator ililogIlinca ililog Data 19 decembrie 2020 11:16:00
Problema Cutii Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.25 kb
using namespace std;
#include<bits/stdc++.h>

#define NMAX 3501

int n,t;
int dp[NMAX];

struct cutie {
    int a,b,c;
} v[NMAX];

bool comp(cutie x, cutie y) {
    if (x.a < y.a) {
        return 1;
    } else if (x.a == y.a) {
        if (x.b < y.b) {
            return 1;
        } else if (x.b == y.b) {
            if (x.c < y.c) {
                return 1;
            }
        }
    }
    return 0;
}

bool maiMare(cutie A, cutie B) {
    if (A.a > B.a && A.b > B.b && A.c > B.c) {
        return 1;
    }
    return 0;
}

int main() {

    ifstream fin("cutii.in");
    ofstream fout("cutii.out");
    
    fin >> n >> t;
    while (t) {
        
        for (int i = 1; i<=n; i++) {
            fin >> v[i].a >> v[i].b >> v[i].c;
        }
        
        sort(v+1, v+n+1, comp);
        
        int ans = 0;
        for (int i = 1; i<=n; i++) {
            dp[i] = 1;
            for (int j = i-1; j>=1; j--) {
                if (maiMare(v[i],v[j])) {
                    dp[i] = max(dp[i], dp[j]+1);
                }
            }
            ans = max(ans, dp[i]);
        }
        
        fout << ans << endl;
        t--;
    }
    
    fin.close();
    fout.close();

    return 0;
}