Cod sursa(job #1896821)

Utilizator BlueCodeMihalache Catalin Alexandru BlueCode Data 28 februarie 2017 22:10:49
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int v[100010],q[100010],p[100010],sol[100010];
int lq,ls;
int n;
int i,j;
bool ok;
int main()
{  f>>n;
  for(i=1;i<=n;++i)
    f>>v[i];
  q[1]=v[1];lq=1;p[1]=1;
  for(i=2;i<=n;++i)
  {  ok=0;
   for(j=1;j<=lq;++j)
     if(v[i]<q[j]){q[j]=v[i];p[i]=j;ok=1;break;}
        else if(v[i]==q[j]){ok=1;p[i]=j;break;}
       if(ok==0)lq++,q[lq]=v[i],p[i]=lq;
  }
  g<<lq<<'\n';
  for(i=lq;i>=1;--i)
  {for(j=n;j>=1;--j)
    if(p[j]==i){ls++;sol[ls]=v[j];break;}
  }
  for(i=ls;i>=1;i--)g<<sol[i]<<" ";



}