Cod sursa(job #2502488)

Utilizator DanutAldeaDanut Aldea DanutAldea Data 30 noiembrie 2019 22:21:13
Problema Cutii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 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;
}