Cod sursa(job #563620)

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

using namespace std;

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

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

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;
            }
        }
    }
    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--;
    }
    sf = n+1;
    n=a[0];
    for(;sf<=n;sf++)
    if(a[sf])
    fo<<a[sf]<<' ';
}