Cod sursa(job #1916774)
| Utilizator | Data | 9 martie 2017 10:20:07 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.79 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int lmax[100000],a[100000];
int main()
{
int n,i,j,maxi=0,aux=0;
fin>>n;
for(i=0; i<n; i++)
fin>>a[i];
lmax[n-1]=1;
for(i=n-2; i>=0; i--)
{
for(j=i+1; j<n; j++)
{
if(a[i]<a[j])
if(lmax[j]+1>lmax[i])
lmax[i]=lmax[j]+1;
}
if(lmax[i]>maxi)
maxi=lmax[i];
}
fout<<maxi<<"\n";
for(i=0; maxi!=0; i++)
{
if(lmax[i]==maxi)
{
if(a[i]>aux)
{
fout<<a[i]<<" ";
maxi--;
aux=a[i];
}
}
}
return 0;
}
