Cod sursa(job #1015537)

Utilizator sebinechitasebi nechita sebinechita Data 24 octombrie 2013 20:14:35
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream>
#include <fstream>
#include <cstring>
#include <string>
#include <climits>
#include <algorithm>
#include <cmath>
#include <queue>
#include <deque>
#include <iomanip>
#include <stack>
#include <cstdio>

using namespace std;

ifstream fin("scmax.in");
ofstream fout("scmax.out");

#define baza 10
#define MAX 110000
#define MOD 104659

typedef long long int lli;

int a[MAX], b[MAX];


void findi(int i)
{
    int j;
    if(b[i]==0)
        return;
    for(j=i-1;b[j]!=b[i]-1;j--);

    findi(j);

    fout<<a[i]<<" ";
}

int main()
{
    int n ,i, j, maxi;
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>a[i];
        b[i]=1;
    }
    maxi=1;

    for(i=1;i<=n;i++)
    {
        for(j=1;j<i;j++)
        {
            if(b[i]<=b[j] && a[i]>a[j])
                b[i]=b[j]+1;

        }
        if(b[i]>b[maxi])
            maxi=i;
    }

    fout<<b[maxi]<<"\n";

    findi(maxi);


    return 0;
}