Pagini recente » Cod sursa (job #2445509) | Cod sursa (job #1171413) | Cod sursa (job #1367717) | Cod sursa (job #628207) | Cod sursa (job #1610702)
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;
FILE* fin=fopen("scmax.in","r");
FILE* fout=fopen("scmax.out","w");
int n,a[100001],b[100001],m;
int main()
{
fscanf(fin,"%d",&n);
for(int i=0; i<n; i++)
fscanf(fin,"%d",&a[i]);
b[n-1]=1;
for(int i=n-1;i--;i>=0)
{
if(a[i]<a[i+1])
b[i]=b[i+1]+1;
else
if(a[i]==a[i+1])
b[i]=b[i+1];
else
{
for(int j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
b[i]=b[j];
}
}
}
if(m<b[i])
m=b[i];
}
fprintf(fout,"%d\n",m);
int k=0;
while(b[k]!=m)
{
k++;
}
m--;
fprintf(fout,"%d ",a[k]);
while(k<n-1 and m!=0)
{
k++;
if(b[k]==m)
{fprintf(fout,"%d ",a[k]);m--;}
}
return 0;
}