Cod sursa(job #1636929)

Utilizator alin1999Buzatu Alin alin1999 Data 7 martie 2016 13:35:23
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
long long v[1000001],l[100001],i,j,n,poz,Max,Max2,poz2,sclm[100001],cmax,k;
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>v[i];
    l[1]=1;
    for(i=2;i<=n;i++)
        {Max=0;Max2=-1;
            for(j=1;j<i;j++)
        if(v[j]>Max)
    {
        Max=v[j];poz=j;
    }
    if(v[i]>Max)
        l[i]=l[poz]+1;
    else
        {for(j=0;j<i;j++)
        if(v[j]>=Max2 && v[j]<v[i])
    {
        Max2=v[j];poz2=j;
    }
    l[i]=l[poz2]+1;}
}
Max=0;
for(i=1;i<=n;i++)
    if(l[i]>Max)
    {Max=l[i];poz=i;}
fout<<Max<<endl;
for(i=1;i<=n;i++)

cmax=Max;
k=cmax;
while(cmax)
    {Max=1000000;
        for(j=poz;j>=1;j--)
     if(l[j]==cmax && v[j]<Max)
    {sclm[cmax]=v[j];Max=v[j];cmax--;}
    }
    for(i=1;i<=k;i++)
        fout<<sclm[i]<<" ";
return 0;
}