Cod sursa(job #2131004)

Utilizator 53215343214Nejneriu Mihai 53215343214 Data 14 februarie 2018 10:33:54
Problema Subsir crescator maximal Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
using namespace std;
int a[100001],b[100001],c[100001];
int main()
{
    ifstream f("scmax.in");
    ofstream g("scmax.out");
    int n,i,j,maxim,maximi;
    f>>n;
    for (i=1;i<=n;i++)
    f>>a[i];
    b[n]=1;
    maxim=1;
    c[n]=-1;
    for (i=n-1;i>=1;i--)
    {
        maxim=0;
        maximi=-1;
        for (j=i+1;j<=n;j++)
            if (a[i]<=a[j]&&b[j]>maxim) {maxim=b[j];
                                         maximi=j;}
        b[i]=1+maxim;
        c[i]=maximi;
    }
    maxim=b[1];
    maximi=1;
    for (i=2;i<=n;i++)
    {
        if (maxim<b[i]) {maxim=b[i];
            maximi=i;
        }
    }
    g<<maxim<<'\n';
    while (maximi!=-1)
    {
        g<<a[maximi]<<" ";
        maximi=c[maximi];
    }
}