Cod sursa(job #2063099)

Utilizator MAlexandruMatei Alexandru MAlexandru Data 11 noiembrie 2017 09:30:25
Problema Subsir 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>

using namespace std;
    int i,j,n,maxim,p,a[101],best[101],poz[101];
int main()
{
    ifstream fin("subsiruri.in");
    ofstream fout("subsiruri.out");

    fin >> n;
    for (i=1;i<=n;i++)fin >> a[i];

    best[n]=1;
    poz[n]=-1;
    maxim=1; p=n;
    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]>maxim) maxim=best[i],p=i;
         }
    }
    fout << maxim << '\n';
    i=p;
    while(i!=-1)
   {
   fout << a[i] << " ";
   i=poz[i];
   }
   fout << '\n';

    return 0;
}