Cod sursa(job #1611370)

Utilizator ewaldBerla Ewald ewald Data 24 februarie 2016 03:32:12
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<fstream>
using namespace std;

ifstream f("scmax.in");
  ofstream g("scmax.out");
  int n,a[100000],i,st,dr,s,x[10000],t[10000],m;
void afis(int m)
{
    if(m)
    {
        afis(t[m]);
        g<<a[m]<<" ";
    }
}
int main()
{
  f>>n;
  for(i=1;i<=n;i++)
    f>>a[i];
   s=1;
   x[1]=1;
   for(i=2;i<=n;i++)
   {
       st=1;
       dr=s;
       while(st<=dr)
       {
           m=(st+dr)/2;
           if(a[i]>a[x[m]])
            st=m+1;
           else
            dr=m-1;
       }
       if(st>s)
            s++;
       x[st]=i;
       t[i]=x[st-1];
   }
   g<<s<<"\n";

   afis(x[s]);
  }