Cod sursa(job #2538502)

Utilizator mihnea03Ciocioiu Mihnea mihnea03 Data 4 februarie 2020 19:57:30
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#define dim 100010
using namespace std;
int a[dim];
int d[dim];
int i,n,u,st,dr,mid;

int main() {
    ifstream fin("scmax.in");
    ofstream fout("scmax.out");
    fin>>n;
    for (i=1;i<=n;i++) {
        fin>>a[i];
    }
    d[++u]=a[1];
    for (i=2;i<=n;i++) {
        st=1;
        dr=u;
        while (st<=dr) {   ///caut ultimul element mai mic ca a[i]
            mid=(st+dr)/2;
            if (d[mid]<a[i]) st=mid+1;
            else dr=mid-1;
        }
        ///rezultatul este in dr
        if (st>u) d[++u]=a[i];
        else d[st]=a[i];
    }
    for (i=1;i<=u;i++) {
        fout<<d[i]<<" ";
    }
    return 0;
}