Cod sursa(job #1894248)

Utilizator vason0000Vasile Ion vason0000 Data 26 februarie 2017 17:48:33
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>

using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");

int n,v[100005],best[100005],poz[100005];
void bestut(int i)
{
    int j,maxxbest=0,pozi=0;

    for(j=i+1;j<=n;j++)
    {
        if(v[i]<v[j] and best[j]>maxxbest)
        {
            maxxbest=best[j];
            pozi=j;
        }
        best[i]=maxxbest+1;
        poz[i]=pozi;

    }
}
int main()
{
    int i;
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>v[i];
    }
    best[n]=1;
    for(i=n-1;i>=1;i--)
    {
        bestut(i);
    }
    int maxb=1,maxpoz;
    for(i=1;i<=n-1;i++)
    {
        if(best[i]>maxb)
            {
                maxb=best[i];
                maxpoz=i;
            }
    }
    fout<<maxb;
    fout<<'\n';
    int k;
    k=maxpoz;
    while(k!=0)
    {
        fout<<v[k]<<" ";
        k=poz[k];
    }
    return 0;
}