Cod sursa(job #1127320)

Utilizator SilistruAlexSilistru Alexandru SilistruAlex Data 27 februarie 2014 11:59:29
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>

using namespace std;

long v[100001], q[100001], n, l=0, p[100001];
ifstream fin("scmax.in"); ofstream fout("scmax.out");
void cautareinp(long k, long i){

    for(i; i>=1; i--)
    if(p[i]==k){if(k>1) cautareinp(k-1, i-1);
                fout<<v[i]<<" "; break;};}

int main(){
    int i, j, ok;
    fin>>n;
    for(i=1; i<=n; i++){fin>>v[i]; ok=0;
        for(j=1; j<=l; j++)
            if(q[j]>=v[i]){q[j]=v[i];
                            ok=1; p[i]=j;
                            break;}
        if(!ok){q[++l]=v[i]; p[i]=l;};}
    fout<<l<<"\n";
    cautareinp(l, n);
    fout<<"\n";
    fin.close(); fout.close();
    return 0;}