Cod sursa(job #2572078)

Utilizator SorbanElodSorban Elod SorbanElod Data 5 martie 2020 11:31:33
Problema Subsir crescator maximal Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
//#include <iostream>
#include <fstream>

using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
const int MAX=100000;
int a[MAX],n,v[MAX],maxi=1;
void beolvas(){
    f>>n;
    for(int i=0;i<n;i++){
        f>>a[i];
    }
}
int main(){
    beolvas();
    if(n==0){
        g<<0<<'\n';
        //cout<<0<<'\n';
        return 0;
    }
    v[n-1]=1;
    for(int i=n-2;i>=0;i--){
        for(int j=i+1;j<n;j++){
            if(a[i]>a[j])v[i]=1;
            else if(a[i]==a[j]&&v[i]<v[j])v[i]=v[j];
            else if(a[i]<a[j]&&v[i]<v[j])v[i]=v[j]+1;
            if(v[i]>maxi)maxi=v[i];
        }
    }
    //cout<<maxi<<'\n';
    g<<maxi<<'\n';
    for(int i=0;i<n;i++){
        if(v[i]==maxi){
            maxi--;
            //cout<<a[i]<<' ';
            g<<a[i]<<' ';
        }
    }
    //cout<<'\n';
    g<<'\n';
    return 0;
}