Cod sursa(job #2413071)

Utilizator Arcadego999Andrei George Arcadego999 Data 22 aprilie 2019 20:57:46
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <fstream>
using namespace std;
ifstream cin ("scmax.in");
ofstream cout ("scmax.out");
int sol[10001],val[10001],x1[10001];
int main()
{
    int n,i,ult=1,maxx=0;
    double x;
    cin>>n;
    cin>>x;
    x1[1]=x*10000;
    sol[1]=x1[1];
    val[1]=1;
    for (i=2;i<=n;i++)
    {
        cin>>x;
        x1[i]=x;
        while (x1[i]<=sol[ult]&& ult>0)
            ult--;
        ult++;
        sol[ult]=x1[i];
        val[i]=ult;
        if (maxx<ult)
            maxx=ult;
    }
    for (i=1;i<=maxx;i++)
        cout<<sol[i]<<' ';
    ult=0;
    cout<<maxx<<'\n';
    for (i=n;i>=1;i--)
    {
        if (val[i]==maxx)
        {
            if (ult!=0 && x1[i]<ult)
            {
                cout<<i<<' ';
                ult=x1[i];
                maxx--;
            }
            else if (ult==0)
            {
                cout<<i<<' ';
                ult=x1[i];
                maxx--;
            }

        }
        if (maxx==0)
            break;
    }
    return 0;
}