Cod sursa(job #1778783)

Utilizator andysoloAndrei Solo andysolo Data 14 octombrie 2016 09:20:45
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>

using namespace std;

int v[100001],n;
int p[100001];

ifstream a("scmax.in");
ofstream b("scmax.out");

int main()
{
    a>>n;
    for(int i=1;i<=n;i++)
    a>>v[i];
    p[n]=1;

    for(int i=n-1;i>=1;i--){
            int x=0;
        for(int j=i+1;j<=n;j++){
            if(v[i]<v[j]&&x<p[j])
                x=p[j];
        }
        p[i]=1+x;
    }
    int maxi=0,d=0;
    for(int i=1;i<=n;i++)
    if(p[i]>maxi)
    {
        maxi=p[i];
        d=i;
    }
    b<<maxi<<endl;
    b<<v[d]<<" ";
    for(int i=d+1;i<=n,maxi>1;i++)
    {
        if(p[i]==maxi-1 && v[d]<v[i])
        {
            maxi--;
            d=i;
            b<<v[d]<<" ";
        }

    }
    return 0;
}