Cod sursa(job #956115)

Utilizator gerd13David Gergely gerd13 Data 2 iunie 2013 11:27:38
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include<fstream>
using namespace std;
ifstream cin("scmax.in");
ofstream cout("scmax.out");
int best[100003], a[100003], max, sol=0, poz[100003], p;
int n;
 void citire()
 {
     cin>>n;
     for(int i=1; i<=n; i++)
     cin>>a[i];

 }
 void dinamica()
 {
     int i, j;
     best[n]=1;
     poz[n]=-1;
     p=n;
     max=1;
     for(i=n-1; i>=1; i--)
     {

         best[i]=1;
         poz[i]=-1;

     for(j=i+1; j<=n; ++j)
     if(a[i]<a[j] && best[i]<best[j]+1)
    {

     best[i]=best[j]+1;
     poz[i]=j;
     if(best[i]>max) max=best[i], p=i;
    }
 }
 }
 void constructie();
 {
     int i;
     i=p;
     while(i!=-1)
     {
         cout<<a[i];
         i=poz[i];
     }

 }
int main()
{
    citire();
    dinamica();
    cout<<max;
    constructie();
    cin.close();
    cout.close();
    return 0;
}