Cod sursa(job #2063268)

Utilizator catalina200029Olteanu Catalina catalina200029 Data 11 noiembrie 2017 10:28:02
Problema Subsir 2 Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("subsir2.in");
ofstream g("subsir2.out");

int n,a[5005],l[5005],lmax,nr,w[5005],il,s1,s2;

void solve() {
    int i,j,k,nrk;
    for (i=n;i>=1;i--) {
        k=0;
        for (j=i+1;j<=n;j++)
            if (a[i]<=a[j] && l[j]>k)
                k=l[j];
        l[i]=1+k;
        if (lmax<l[i]) {
            lmax=l[i];
            il=i;
        }
    }
    g<<lmax<<'\n';
    s2=-1000001;
    while (lmax) {
        s1=1000001;
        for (j=il+1;j<=n;j++)
            if (l[j]==lmax && s2<=a[j] && a[j]<=s1) {
                s1=a[j];
                il=j;
            }
        g<<il<<' ';
        s2=a[il];
        lmax--;
    }
}

int main() {
    int i,j;
    f>>n;
    for (i=1;i<=n;i++)
        f>>a[i];
    solve();
    return 0;
}