Cod sursa(job #1887249)

Utilizator puzzleFlutur Vasile puzzle Data 21 februarie 2017 14:24:49
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 1.17 kb
#include <fstream>

using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int v[100001];
int b[100001];
int apare(int x, int n)
{
    for(int i=0; i<n; i++)
    {
        if(x==b[i])
        {
            return 0;
        }
    }
    return 1;
}
int main()
{
    int n,i,lmax,l,pi,pf,pimax,pfmax;
    in>>n;

    for(i=0; i<n; i++)
    {
        in>>v[i];
    }

    lmax=-1;
    l=1;
    pi=0;
    pf=0;
    pimax=0;
    pfmax=0;
    int k=0;
    for(i=1; i<n; i++)
    {

        if(v[i]>v[i-1])
        {
            pf=i;
            l++;


        }
        else if(v[i]==v[i-1])
        {
            pf=i;
        }
        else if(v[i]<v[i-1])
        {
            lmax=l;
            pfmax=pf;
            pimax=pi;
            pi=i;
            l=1;

        }
    }
    if(l>lmax)
    {
        pimax=pi;
        pfmax=pf;
        lmax=l;
    }
    n=0;

    for(i=pimax; i<=pfmax; i++)
    {
        if(apare(v[i],n))
        {
            b[k]=v[i];
            n++;
            k++;
        }
    }
    out<<lmax<<endl;
    for(i=0; i<k; i++)
        out<<b[i]<<" ";


    return 0;
}