Cod sursa(job #2246836)

Utilizator YetoAdrian Tonica Yeto Data 27 septembrie 2018 17:02:40
Problema Subsir 2 Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
using namespace std;
int n, i, j, k, maxim=-1, v[5001], l[5001], poz, minim=2000000000, p, sol[5001];

int main () {
    ifstream fin ("subsir2.in");
    ofstream fout ("subsir2.out");
    fin>>n;
    for (i=1;i<=n;i++) {
        fin>>v[i];
    }

    for (i=1;i<=n;i++) {
        l[i]=1;
        for (j=i-1;j>=1;j--) {
            if (v[i]>=v[j]) {
                if (l[i]<l[j]+1)
                    l[i]=l[j]+1;
            }
            if (l[i]>maxim) {
                maxim=l[i];
            }
        }
    }

    fout<<maxim<<"\n";
    p=maxim;
    poz=n+1;
    while (p>0) {
        minim=2000000000;
        for (i=poz-1;i>=1;i--) {
            if (l[i]==p) {
                if (v[i]<minim) {
                    minim=v[i];
                    poz=i;
                }
            }
        }
        sol[p]=poz;
        p--;
    }

    for (i=1;i<=maxim;i++) {
        fout<<sol[i]<<" ";
    }

    return 0;
}