Cod sursa(job #787215)

Utilizator nicu701Nicu Badescu nicu701 Data 12 septembrie 2012 20:59:08
Problema Subsir crescator maximal Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
using namespace std;
fstream f("scmax.in", ios::in),
        g("scmax.out", ios::out);
int numere[100001], succ[100001], i, maxTemp, maxGlob, n;
void actual(int i)
{
    int k, maxTemp;
    maxTemp=0;
    for(k=i+1;k<=n;k++)
    {
        if(numere[k]>=numere[i] && succ[k]>maxTemp)
            maxTemp=succ[k];
    }
    succ[i]=maxTemp+1;
    if(succ[i]>maxGlob)
        maxGlob=succ[i];
}

int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>numere[i];
    succ[n]=1;
    for(i=n-1;i>=1;i--)
        actual(i);
    g<<maxGlob<<endl;
    for(i=1;i<=n;i++)
    {
        if(succ[i]==maxGlob)
        {
            g<<numere[i]<<" ";
            maxGlob--;
        }
    }
    return 0;
}