Cod sursa(job #2834759)

Utilizator mihhTURCU MIHNEA ALEXANDRU mihh Data 17 ianuarie 2022 17:03:17
Problema Subsir crescator maximal Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;

int main(){
    ifstream fin("scmax.in");
    ofstream fout("scmax.out");
    int n;
    fin>>n;
    vector<int> lis(1);
    fin>>lis[0];
    for(int i=2;i<=n;++i){
        auto cb=[](int x, vector<int> &a){
            int st=0, dr=a.size()-1;
            int ans=dr;
            while(st<=dr){
                int mij=(st+dr)/2;
                if(a[mij]==x) return mij;
                if(a[mij]>x){
                    ans=mij;
                    dr=mij-1;
                }else st=mij+1;
            }
            return ans;
        };
        int x; fin>>x;
        if(x>lis.back()) lis.push_back(x);
        else lis[cb(x,lis)]=x;
    }
    fout<<lis.size();
}