Cod sursa(job #1127115)

Utilizator SilistruAlexSilistru Alexandru SilistruAlex Data 27 februarie 2014 11:13:18
Problema Subsir crescator maximal Scor 60
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){
    int i;
    for(i=n; i>=1; i--)
    if(p[i]==k){if(k>1) cautareinp(k-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);
    fout<<"\n";
    fin.close(); fout.close();
    return 0;}