Cod sursa(job #563614)

Utilizator EstarDaian Dragos Estar Data 25 martie 2011 16:32:37
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>

using namespace std;

ifstream fi("scmax.in");
ofstream fo("scmax.out");

int a[1001] , n , b[1001] , MAX=1 , prec;

int main(){
    string sol;
    fi>>n;
    for(int i=1;i<=n;i++){
        fi>>a[i];
        b[i]=1;
    }
    for(int i=1;i<=n;i++){
        for(int j=i-1;j>=1;j--){
            if(a[i]>a[j]){
                b[i]=b[j]+1;
                if(MAX<b[i]){
                    MAX=b[i];
                    prec=i;
                    }
                break;
            }
        }
    }
    int aux = MAX ;
    a[0]=prec;
    fo<<MAX<<'\n';
    n=prec;
    while(MAX){
        if(b[n]==MAX&&a[prec]>=a[n]){
            prec=n;
            MAX--;
        }
        else
        a[n]=0;
        n--;
    }
    MAX = aux;
    n=a[0];
    while(MAX){
        if(a[n]){
            MAX--;
            fo<<a[n]<<' ';
        }
        n--;
    }
}