Cod sursa(job #1825803)

Utilizator ionutmargineancnuMarginean Ionut ionutmargineancnu Data 9 decembrie 2016 17:39:40
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include<fstream>
using namespace std;
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
pair<int,int> p[100105];
int v[100105], k[100105], i , n, j,poz, rasp[100105];
int main()
{
    fin>>n;
    for ( i = 1 ; i <= n ; i++ )
        fin>>v[i];
    for ( i = 1 ; i <= n+2 ; i++ )
        p[i].first=2000000009;

    for ( i = 1 ; i <= n ; i++ )
        for ( j = 1 ; j <= n ; j++ )
            if( v[i] <= p[j].first )
            {

                p[j].first = v[i];
                p[j].second=i;
                k[i]=p[j-1].second;
                break;
            }
    n=1;
    while( p[n].first != 2000000009 )
        n++;
    fout<<n-1<<"\n";
    poz = p[ n-1 ].second;
    j=0;
    for( i = 1 ; poz != 0 ; poz=k[poz] )
        rasp[j]=v[poz], j++;
    for(i=j-1; i>=0;i--)
        fout<<rasp[i]<<" ";
    fin.close();
    fout.close();
    return 0;
}