Cod sursa(job #2499187)

Utilizator OvidRata Ovidiu Ovid Data 25 noiembrie 2019 17:19:13
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("scmax.in"); ofstream fout("scmax.out"); 



int n, len[100010], a;
string subsir[100010];


int bs(int x, int l, int r){
int m=l+r; m/=2;

if( len[m-1]<x && len[m]>=x){len[m]=x; subsir[m]=subsir[m-1]+to_string(x)+" "; return m;}
else{if(len[m-1]>=x){return bs(x, l, m-1);}
        else{return bs(x, m+1, r);}}



}




int main(){
fin>>n;
subsir[0]="";
int m=0;
for(int i=1; i<=n; i++){
    fin>>a;

    if(len[m]<a){len[m+1]=a; subsir[m+1]=subsir[m]+to_string(a)+" "; m++;}
    else{bs(a, 1, m);}
}

fout<<subsir[m];


    return 0;
}