Pagini recente » Cod sursa (job #3209409) | Cod sursa (job #2800767) | Cod sursa (job #1418113) | Cod sursa (job #516506) | Cod sursa (job #2131004)
#include <iostream>
#include <fstream>
using namespace std;
int a[100001],b[100001],c[100001];
int main()
{
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,i,j,maxim,maximi;
f>>n;
for (i=1;i<=n;i++)
f>>a[i];
b[n]=1;
maxim=1;
c[n]=-1;
for (i=n-1;i>=1;i--)
{
maxim=0;
maximi=-1;
for (j=i+1;j<=n;j++)
if (a[i]<=a[j]&&b[j]>maxim) {maxim=b[j];
maximi=j;}
b[i]=1+maxim;
c[i]=maximi;
}
maxim=b[1];
maximi=1;
for (i=2;i<=n;i++)
{
if (maxim<b[i]) {maxim=b[i];
maximi=i;
}
}
g<<maxim<<'\n';
while (maximi!=-1)
{
g<<a[maximi]<<" ";
maximi=c[maximi];
}
}