Cod sursa(job #1142901)

Utilizator robertkarolRobert Szarvas robertkarol Data 14 martie 2014 13:19:54
Problema Subsir crescator maximal Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
long i,j,poz[1001],lung[1001],v[1001],n,MAX,l,x,sw;
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>v[i];
    for(i=n;i>=1;i--)
    {
        lung[i]=1;
        l=0;
        for(j=i+1;j<=n;j++)
          {

              if(v[i]<v[j])
        {
            if(lung[i]<lung[j]+1)
              {
                  lung[i]=lung[j]+1;
                  poz[i]=j;
              }

        }
          }
        if(i==poz[i])
            poz[i]=0;
        if(lung[i]>MAX)
            MAX=lung[i];
    }
    for(i=1;i<=n&&sw==0;i++)
        if(lung[i]==MAX)
    {
        sw=1;
        x=i;
    }
    fout<<MAX<<"\n";
    while(x>=0)
    {
        fout<<v[x]<<" ";
        x=poz[x];
        if(x==0)
        {

            break;
        }
    }
    return 0;
}