Cod sursa(job #2502925)

Utilizator AlexPascu007Pascu Ionut Alexandru AlexPascu007 Data 1 decembrie 2019 21:18:22
Problema Cutii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <bits/stdc++.h>
#define x first
#define y second.first
#define z second.second
#define inf 1000000000
using namespace std;
ifstream fin("cutii.in");
ofstream fout("cutii.out");
int n,t,i,st,mid,dr,cnt,d[3600]; //d[i]=cea mai mica val in care se termina un subsir crescator
pair< int,pair<int,int> >v[3600];//de lungime i cu elementele parcurse pana acum
int main() {
    fin>>n>>t;
    while (t--) {
        for (i=1;i<=n;i++) {
            fin>>v[i].x>>v[i].y>>v[i].z;
            d[i]=0;
        }
        sort(v+1,v+n+1);
        v[n+1].x=v[n+1].y=v[n+1].z=inf;
        d[1]=1;
        cnt=1;
        for (i=2;i<=n;i++) {
            st=1; dr=cnt;
            while (st<=dr) {
                mid=(st+dr)/2;
                if (v[d[mid]].y>v[i].y&&v[d[mid]].z>v[i].z)
                    dr=mid-1;
                else
                    st=mid+1;
            }
            if (st>cnt)
                cnt++;
            d[st]=i;
        }
        fout<<cnt<<"\n";
    }
    return 0;
}