Cod sursa(job #1984782)

Utilizator Constantin.Dragancea Constantin Constantin. Data 25 mai 2017 23:02:08
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>
using namespace std;

#define x first
#define y second
#define mp make_pair

int n,A[100010],D[100010],p[100010],m,poz;
pair <int,int> P[100010];

void afisare(int q){
    if (p[q]) afisare(p[q]);
    cout<<A[q]<<" ";
}

int main(){
    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);
    cin>>n;
    for (int i=1; i<=n; i++) cin>>A[i],D[i]=1;
    for (int i=2; i<=n; i++){
        for (int j=1; j<i; j++){
            if (A[i]>A[j] && D[j]+1>D[i]) D[i]=D[j]+1, p[i]=j;
            if (D[i]>m) m=D[i],poz=i;
        }
    }
    cout<<m<<"\n";
    afisare(poz);
    return 0;
}