Cod sursa(job #1668299)

Utilizator sebastiannrxRichiteanu Mihai Sebastian sebastiannrx Data 29 martie 2016 18:43:36
Problema Subsir 2 Scor 36
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
using namespace std;
ifstream f("subsir2.in");
ofstream g("subsir2.out");
int n,a,i,j,lc,mi,ma,k,v[5001],s[5001],l[5001];
int main()
{   f>>n;
    for (i=1;i<=n;++i)
        f>>v[i];
    l[n]=1;
    s[n]=0;

    for (i=n-1;i>=1;--i) {
        ma=0;

        for (j=i+1;j<=n;++j)
            if (v[j]>v[i] )
                if (l[j]>ma) {
                ma=l[j];
                k=j;}
            else
                if (l[j]==ma)
              if (v[j]<v[k])
                        k=j;


        s[i]=k;
        l[i]=ma+1;}

    ma=0;
    for (i=1;i<=n;++i)
        if (l[i]>ma) {
            ma=l[i];
            k=i;}

    g<<ma<<'\n'<<k<<" ";
    k=s[k];
    --ma;
    while (ma) {
        g<<k<<" ";
        k=s[k];
        --ma;
    }
    g<<'\n';



    return 0;
}