Cod sursa(job #1473676)

Utilizator eu3neuomManghiuc Teodor-Florin eu3neuom Data 19 august 2015 23:33:12
Problema Cutii Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstring>

using namespace std;

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

const int NMax = 3505;

struct point{
    int x, y, z;
}v[NMax];

int best[NMax];

inline bool cmp(const point &a, const point &b){
    if(a.x != b.x) return a.x > b.x;
    if(a.y != b.y) return a.y > b.y;
    if(a.z != b.z) return a.z > b.z;
    return 0;
}

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