Pagini recente » Cod sursa (job #1336167) | Cod sursa (job #1674530) | Cod sursa (job #2108446) | Cod sursa (job #2963974) | Cod sursa (job #2131009)
#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,maximmaxim=0,maximi,maximmaximi;
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;
if (maximmaxim<b[i]) {maximmaxim=b[i];
maximmaximi=i;}
}
maxim=b[1];
maximi=1;
g<<maximmaxim<<'\n';
while (maximmaximi!=-1)
{
g<<a[maximmaximi]<<" ";
maximmaximi=c[maximmaximi];
}
}