Cod sursa(job #2669388)

Utilizator monica_LMonica monica_L Data 6 noiembrie 2020 20:55:07
Problema Subsir 2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <fstream>
#include <climits>
using namespace std;
ifstream f("subsir2.in");
ofstream g("subsir2.out");
long long n,i,v[5111],l[5111],ok,k,mx,x,mn,copie,j;
int main()
{
    f>>n;
    for(i=1; i<=n; i++)
        f>>v[i];

    for(i=n; i>=1; i--)
    {
        mn=LONG_LONG_MAX;
        l[i]= LONG_LONG_MAX;
        for(j=i+1; j<=n; j++)
            if(v[i]<=v[j]&&v[j]<mn)
            {
                if(l[j]+1<l[i])l[i]=l[j]+1;
                mn=v[j];

            }
        if(l[i]==LONG_LONG_MAX)l[i]=1;
    }

    mx=LONG_LONG_MAX;
    mn=LONG_LONG_MAX;


    for(i=1; i<=n; i++)
    {
        if(v[i]<mn)
        {
            mn=v[i];
            mx=min(maxim,l[i]);
        }
    }


    g<<mx<<'\n';

    x=LONG_LONG_MIN;
    long long  poz=0;
    long long mx1;
    while(mx)
    {

        mn=LONG_LONG_MAX;
        mx1=LONG_LONG_MAX;
        for(i=poz+1; i<=n; i++)
            if(l[i]==mx && v[i]>=x && v[i]<mx1)
            {
                poz=i;
                mn=v[i];
                mx1=v[i];
            }
            else if(v[i]>=x && v[i]<mx1) mx1=v[i];

        g<<poz<<" ";
        x=v[poz];
        mx--;


    }


    return 0;
}