Pagini recente » Cod sursa (job #2103373) | Cod sursa (job #527426) | Cod sursa (job #2480469) | Cod sursa (job #1142502) | Cod sursa (job #2107831)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int v[100001];
int beststart[100001];
int k;
int newstart[100001];
int main()
{
int n,i,t;
fin>>n;
for(i=1;i<=n;++i)
fin >> v[i];
k=n;
t=1;
beststart[1]=v[k];
for(k=n-1;k>=1;--k)
{
for(i=1;i<=t;++i)
{
if(v[k]>beststart[1])
newstart[1]=v[k];
if(v[k]<beststart[i]&&v[k]>beststart[i+1])
{
newstart[i+1]=v[k];
if(i==t)
{
++t;
break;
}
}
}
for(i=1;i<=t;++i)
if(newstart[i]>beststart[i])
beststart[i]=newstart[i];
}
fout << t << endl;
for(i=t;i>=1;--i)
fout<<beststart[i]<<" ";
return 0;
}