Cod sursa(job #867770)

Utilizator marco45Pacurariu Marco marco45 Data 30 ianuarie 2013 08:32:53
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
long int n,i,a[100001],b[100001],j,k=0;
int main()
{
    ifstream fin("scmax.in");
    ofstream fout("scmax.out");
    fin>>n;
    for(i=1;i<=n;i++) fin>>a[i];
    for(i=n;i>=1;i--)
    {
        for(j=i+1;j<=n;j++)
        {
            if((a[i]<a[j])&&(b[i]<=b[j])) b[i]=b[j]+1;
        }
        if(b[i]==0) b[i]=1;
    }
    for(i=1;i<=n;i++) if(b[i]>k) k=b[i]; fout<<k<<endl;

    for(i=1;i<=n;i++)
    {
        if(b[i]==k) {fout<<a[i]<<" ";k--;}
    }

   // sort(b+1,b+1+i);
   // for(i=1;i<=n+1;i++) {if((b[i]!=b[i+1])&&(b[i]!=0)) cout<<b[i]<<" ";}
    fin.close();
    fout.close();
    return 0;
}