Cod sursa(job #1325876)

Utilizator radu_cosmaRadu Cosma radu_cosma Data 24 ianuarie 2015 14:14:50
Problema Subsir crescator maximal Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <fstream>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int dp[100001],i,maxx,vmax,n,j,poz,s=0,v[100001],l;
void nrm(int v[], int n)
{
    dp[1]=1;
    maxx=dp[1];
    vmax=v[1];
    for(i=2; i<=n; i++)
        if(v[i]>vmax)
        {
            dp[i]=maxx+1;
            vmax=v[i];
            poz=i;
        }
        else
        {
            dp[i]=1;
            for(j=1; j<i; j++)
                if(v[i]>v[j]) dp[i]++;
            if(dp[i]>maxx)
            {
                maxx=dp[i];
                vmax=v[i];
                poz=i;
            }

        }
}
int main()
{
    in>>n;
    for(i=1; i<=n; i++)
        in>>v[i];
    nrm(v,n);
    for(i=poz;i>=1;i--)
        if(v[i]>=v[i-1]) s++;
        else {l=i; break;}
        out<<s<<endl;
        for(i=l;i<=poz;i++)
        if(i!=poz){
            if(v[i]!=v[i+1])
            out<<v[i]<<" ";}
            else
                out<<v[i]<<" ";
    return 0;
}