Cod sursa(job #2063304)

Utilizator ioanalexandraIoan Alexandra ioanalexandra Data 11 noiembrie 2017 10:39:19
Problema Subsir 2 Scor 73
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("subsir2.in");
ofstream g("subsir2.out");
int i,j,n,a[5005],l[5005],nr,lmx,imax,nri,nrmin,Min,poz,k,mnm,p;
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>a[i];
    for(i=n; i>0; i--)
    {
        for(j=i+1,Min=1e9; j<=n; j++)
            if(a[j]>=a[i] &&a [j]<Min)
            {
                Min=min(Min,a[j]);
                l[i]=min(l[i],l[j]+1);
                if(!l[i])l[i]=l[j]+1;
            }
        if(l[i]==0)l[i]=1;
        lmx=max(lmx,l[i]);
    }
     for(i=1,Min=1e9; i<=n; i++)
    {
        if(a[i]<Min)
        {
            Min=a[i];
            lmx=min(lmx,l[i]);
        }
    }
    g<<lmx<<'\n';
    poz=1;
    for (k=lmx; k>=1; k--)
    {
        mnm=1000000;
        for (i=poz; i<=n; i++)
            if (mnm>a[i] && l[i]==k)
            {
                p=i;
                mnm=a[i];
            }
        poz=p;
        g<<poz<<" ";
    }
    return 0;
}