Cod sursa(job #3266742)

Utilizator cristian46290Petre Cristian cristian46290 Data 10 ianuarie 2025 10:05:57
Problema Cutii Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream f("cutii.in");
ofstream g("cutii.out");

const int nMax = 3e3 + 5e2 + 5;

int T, n;
int lis[nMax];
struct DIMENSIUNI
{
    int x, y, z;
}a[nMax];

bool cmp1(DIMENSIUNI z,DIMENSIUNI b)
{
    return (z.x < b.x && z.y < b.y && z.z < b.z);
}

bool cmp(DIMENSIUNI z,DIMENSIUNI b)
{
    if (z.x != b.x)return z.x < b.x;
    if (z.y != b.y)return z.y < b.y;
    if (z.z != b.z)return z.z < b.z;
    return cmp1(z,b);
}

int main()
{
    f >> n >> T;
    while(T){
        for (int i = 1;i <= n;i++){
            f >> a[i].x >> a[i].y >> a[i].z;
            lis[i] = 0;
        }
        sort(a+1,a+n+1,cmp);
        lis[0] = 0;
        lis[1] = 1;
        int Max = 1;
        for (int i = 2;i <= n;i++){
            int Max2 = 0;
            for (int j = 1;j < i;j++){
                if (cmp1(a[j],a[i]) == true && lis[j] > Max2)Max2 = lis[j];
            }
            lis[i] = Max2 + 1;
            Max = max(lis[i],Max);
        }
        g << Max << '\n';
        T--;
    }
}