Cod sursa(job #1583997)

Utilizator HawksCBalota George HawksC Data 29 ianuarie 2016 16:48:10
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n, v[100007], w[100007], maxe, maxim, gasit, nr=0, cmaxim;

void cit()
{
    int i;
    f>>n;
    for(i=1;i<=n;i++) f>>v[i];
}

int main()
{
    cit();
    int i, j;
    for(i=n-1;i>=1;i--)
    {
        gasit=0;
        maxe=0;
        for(j=i+1;j<=n;j++)
        {
            if(v[i]<v[j]) gasit=1;
            if(v[i]<v[j]&&w[j]>maxe)
            {
                maxe=w[j];
            }
        }
        if(maxe) w[i]=maxe+1;
        if(gasit==1&&maxe==0) w[i]=1;
        if(w[i]>maxim) maxim=w[i];
    }
    g<<maxim+1<<endl;
    for(i=1;i<=n;i++)
    {
        if(w[i]==maxim)
        {
            g<<v[i]<<" ";
            maxim--;
        }
    }
    return 0;
}