Cod sursa(job #1961577)

Utilizator PlesaMiriamPlesa Miriam PlesaMiriam Data 11 aprilie 2017 11:00:40
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>
using namespace std;
const int maxn=100000;
int pre[100000],best[100000];
int n, a[maxn];
ifstream fin("scmax.in");
ofstream fout("scmax.out");
void drum(int p){
if(p==-1)
    return;
drum(pre[p]);
fout<<a[p]<<" ";
}
int main()
{
fin>>n;
int max,p;
best[0]=1;pre[0]=-1;
for(int i=0;i<n;i++){
fin>>a[i];
for(int i=1;i<n;i++){
    p=-1;max=0;
    for(int j=0;j<i;j++){
    if(a[j]<a[i] && best[j]>max){
        max=best[j];
        p=j;
    }
    best[i]=1+max;
    pre[i]=p;}
}}
max=0;p=0;
for(int i=0;i<n;i++)
    if(best[i]>max)
{
    max=best[i];
    p=i;
}
fout<<max<<endl;
drum(p);
    return 0;
}