Cod sursa(job #1293733)

Utilizator cristibogdanPatrascu Cristian cristibogdan Data 16 decembrie 2014 14:45:34
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.1 kb
#include <fstream>

using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");

int v[100001],a[100001],b[100001],dr,st,k,i,j,m,p,n,nr,c[100001];

int main()
{f>>n;
k=0;
for(i=1;i<=n;i++){
         f>>v[i];

         st=1;
         dr=k;
    p=0;
while(st<=dr){
         m=(st+dr)/2;
         if(v[i]<=a[m]){
                  p=m;
                  dr=m-1;}
         else{

                                    st=m+1;}

                           }
                           if(p==0){
                                    k++;
                                    a[k]=v[i];
                                    b[i]=k;}
                  else
                           {
                                    a[k]=v[i];
                                    b[i]=k;
                           }}
         g<<k<<'\n';

         for(i=n;i>=1;i--){
                  if(b[i]==k){
                           nr++;
                           c[nr]=a[k];
                           k--;}

                  }

for(i=nr;i>=1;i--)
                  g<<c[i]<<" ";

    return 0;
}