Cod sursa(job #1978739)

Utilizator sichetpaulSichet Paul sichetpaul Data 8 mai 2017 18:24:41
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>

using namespace std;
int best[100001];
int main()
{ int n,i,st,dr,mij,nr=0,x,Max;
    ifstream f("scmax.in");
    ofstream g("scmax.out");
    f>>n;
    for (i=1;i<=n;++i) {
        f>>x;
        st=1,dr=nr;
        Max=1;
        while (st<=dr) {
            mij=(st+dr)/2;
            if (best[mij]<x) {
                st=mij+1;
                Max=max(Max,mij+1);
            }
            else dr=mij-1;
        }
    if (Max<=nr) {
       if (x<best[Max]) {
          best[Max]=x;
       }
    }
       else {
          ++nr;
          best[nr]=x;
       }
    }
    g<<nr<<'\n';
     for (i=1;i<=nr;++i)
        g<<best[i]<<" ";

    return 0;
}