Cod sursa(job #1841500)

Utilizator eugeniordEugen Iordanescu eugeniord Data 5 ianuarie 2017 17:52:55
Problema Subsir crescator maximal Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <cstdio>
using namespace std;
int l[100001];
struct element{int ord,val;};
element v[100001];

int main()
{
    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);
    int n,i,lmaxf=0,max,j;
    cin>>n;
    for(i=1;i<=n;i++)
    {
        cin>>v[i].val;
        v[i].ord=i;
    }
    l[n]=1;
    for(i=n;i>=1;i--)
    {
        max=0;
        for(j=i+1;j<=n;j++)
            if(v[i].val<v[j].val && max<l[j])
                max=l[j];
        l[i]=max+1;
        if(lmaxf<l[i])
            lmaxf=l[i];
    }
    cout<<lmaxf<<endl;
    for(i=1;i<=n;i++)
        if(lmaxf==l[i])
        {
            cout<<v[i].ord<<" ";
            lmaxf--;
        }
}