Cod sursa(job #1785951)

Utilizator onescu.iancuOnescu Iancu onescu.iancu Data 22 octombrie 2016 10:18:31
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <iostream>
#include <fstream>

using namespace std;

void Citire(int a[100001], int &n)
{
    ifstream fin("scmax.in");
    fin>>n;
    for(int i=0; i<n; i++)
        fin>>a[i];
}

void Prelucrare(int a[100001], int n, int b[100001])
{
    ofstream fout("scmax.out");
    int li=1;
    b[n-1]=1;
    int maxim=a[n-1];
    for(int i=n-2; i>=0; i--)
    {
        maxim=0;
        for(int j=i+1; j<n; j++)
            if(a[i]<a[j])
                if(b[j]>maxim)
                {
                    maxim=b[j];
                    li=j;
                }
        b[i]=maxim+1;
    }
    fout<<maxim+1<<endl;
    int val=maxim+1;
    for(int i=0; i<n; i++)
        {
            if(b[i]==val)
            {
                fout<<a[i]<<" ";
                val--;
            }
        }

    /*for(int i=0; i<n; i++)
        cout<<b[i]<<" ";*/
}

int main()
{
    int a[100001], n;
    int b[100001];
    Citire(a, n);
    Prelucrare(a, n, b);
    return 0;
}