Cod sursa(job #2107831)

Utilizator omegasFilip Ion omegas Data 17 ianuarie 2018 18:58:36
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");

int v[100001];
int beststart[100001];
int k;
int newstart[100001];


int main()
{
    int n,i,t;
    fin>>n;
    for(i=1;i<=n;++i)
        fin >> v[i];
    k=n;
    t=1;
    beststart[1]=v[k];

    for(k=n-1;k>=1;--k)
    {
        for(i=1;i<=t;++i)
        {
            if(v[k]>beststart[1])
                newstart[1]=v[k];
            if(v[k]<beststart[i]&&v[k]>beststart[i+1])
            {
                newstart[i+1]=v[k];
                if(i==t)
                {
                    ++t;
                    break;
                }
            }
        }

        for(i=1;i<=t;++i)
        if(newstart[i]>beststart[i])
            beststart[i]=newstart[i];
    }
    fout << t << endl;
    for(i=t;i>=1;--i)
        fout<<beststart[i]<<" ";

        return 0;
}