Cod sursa(job #3191671)

Utilizator vlad231Gheorghica Istrate David vlad231 Data 10 ianuarie 2024 12:29:27
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <vector>
using namespace std;
int n,x;
vector <int>v;

int binary_search(int x){
    int right=0,left=v.size(),mid;
    while(right<left){
        mid=(right+left)/2;
        if(v[mid]>x){
            left=mid-1;
        } else if(v[mid]<x)
            right=mid+1;
        else{
            return mid;
        }

    }
    return left;
}
int main() {
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>x;
        v.push_back(x);
    }
    if(v.size()==1)
        return 1;
    vector <int>ans;
    ans.push_back(v[0]);
    for(int i=1;i<n;i++){
        if(v[i]>ans.back()){
            ans.push_back(v[i]);
        } else{
            ans[binary_search(v[i])+1]=v[i];
        }
    }
    cout<<ans.size();
    return 0;
}