Cod sursa(job #2502490)

Utilizator DanutAldeaDanut Aldea DanutAldea Data 30 noiembrie 2019 22:22:01
Problema Cutii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#define y first
#define z second
using namespace std;

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

int n,T,i,j,k,st,dr,mid,cnt,d[3501],t[3501],u;
pair<int,int> v[3501];

int main(){
    fin>>n;
    n++;

    for(fin>>T;T;T--){
        cnt=0;
        for(i=1;i<n;i++){
            fin>>j;
            fin>>v[j].y>>v[j].z;
        }
        v[n]=make_pair(1000000,1000000);

        for(i=1;i<=n;i++){
            st=1; dr=cnt;

            while(st<=dr){
                mid=(st+dr)/2;

                if(v[i].y>v[d[mid]].y && v[i].z>v[d[mid]].z)
                    st=mid+1;
                else
                    dr=mid-1;
            }

            if(st>cnt)
                cnt++;

            d[st]=i;
            t[i]=d[st-1];
        }
        u=n; k=0;
        while(u!=0){
            k++;
            u=t[u];
        }

        fout<<cnt-1<<"\n";
    }

    return 0;
}