Cod sursa(job #1681506)

Utilizator ifrimencoAlexandru Ifrimenco ifrimenco Data 9 aprilie 2016 15:21:10
Problema Subsir crescator maximal Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>
using namespace std;
int n, i, v[1003], ma, v1[1003], poz[1003];



int main()
{
ifstream f("scmax.in");
ofstream g("scmax.out");
  f >> n;
  for (i=1;i<=n;++i)
    f >> v[i] ;
   int j, cont=1;
   v1[n]=1;
   poz[n]=-1;

   for (i=n-1;i>=1;--i)
 {
     for (j=n;j>=i+1;--j)
    if (v[i]<v[j])
    {
        if (v1[j]>ma) cont=j;
        ma=max(ma,v1[j]);

    }
    if (ma==0) poz[i]=-1;
    v1[i]=ma+1;
    poz[i]=cont;
    ma=0;
}
for (i=1;i<=n;++i)
{
    if (v1[i]>=ma) {cont=i;ma=v1[i];}
}

g << ma << "\n";
for (i=cont;i!=-1;i=poz[i])
    g << v[i] << " ";
    return 0;
}