Cod sursa(job #2063118)

Utilizator alexandruilieAlex Ilie alexandruilie Data 11 noiembrie 2017 09:36:36
Problema Subsir 2 Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>

using namespace std;
ifstream f("subsir2.in");
ofstream g("subsir2.out");
int l[5001],a[5001],n,lmax,i;
struct ceva{int val,ind;}v[5001];
void solve()
{
    int i,j;
    l[n]=1;v[1].val=a[n];v[1].ind=n;
    for(i=n-1;i>=1;i--)
    {
        int mx=0;
        for(j=i+1;j<=n;j++)
        {
            if(a[i]<a[j]&&mx<l[j]) mx=l[j];
        }
        l[i]=1+mx;
        if(v[l[i]].val>a[i]) v[l[i]].val=a[i],v[l[i]].ind=i;;
        if(l[i]>lmax) lmax=l[i];
    }
    g<<lmax<<'\n';
    for(i=lmax;i>=1;i--)
    g<<v[i].ind<<' ';
}
int main()
{
    f>>n;
    for(i=1;i<=n;i++) f>>a[i];
    for(i=1;i<=n;i++) v[i].val=1000001;
    solve();
    return 0;
}