Cod sursa(job #2702324)

Utilizator AndreiStreheStreche Andrei Claudiu AndreiStrehe Data 3 februarie 2021 17:54:55
Problema Subsir crescator maximal Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.39 kb
#include <fstream>

using namespace std;

ifstream f("scmax.in");
ofstream g("scmax.out");

int i,n,inceput,ultimul,incep,ultim,j,precedent,maxim;
int nr[100005],elementeignorate[100005];

int main()
{
    f>>n;

    for(i=1;i<=n;i++)
    {
        f>>nr[i];
    }

    for(i=1;i<=n;i++)
    {
        inceput=i;
        ultimul=i;
        precedent=nr[i];
        elementeignorate[1]=0;
        for(j=i+1;j<=n;j++)
        {
            if(nr[j]>precedent)
            {
                ultimul=j;
                precedent=nr[j];
                elementeignorate[j]=elementeignorate[j-1];
            }
            else
            {
                elementeignorate[j]=elementeignorate[j-1]+1;
            }
        }
        if(ultimul-inceput-(elementeignorate[ultimul]-elementeignorate[inceput])+1>maxim)
        {
            incep=inceput;
            ultim=ultimul;
            maxim=ultimul-inceput-(elementeignorate[ultimul]-elementeignorate[inceput])+1;
        }
    }
    //g<<ultim<<" "<< incep<<" "<<elementeignorate[ultim]-elementeignorate[incep]<<'\n';

    g<<ultim-incep-(elementeignorate[ultim]-elementeignorate[incep])+1<<'\n';

    precedent=nr[incep];
    g<<precedent<<" ";

    for(i=incep+1;i<=ultim;i++)
    {
        if(nr[i]>precedent)
        {
            g<<nr[i]<<" ";
            precedent=nr[i];
        }
    }

    return 0;
}