Pagini recente » Cod sursa (job #1883807) | Cod sursa (job #2837159) | Cod sursa (job #774229) | Cod sursa (job #880449) | Cod sursa (job #1754224)
#include <cstdio>
#include <vector>
using namespace std;
int n,a[4][100000],mem,p,u,pm,um,lmax,poz;
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
scanf("%d",&a[1][1]);
a[2][1]=1;mem=a[1][1];p=1;a[3][1]=1;
for(int i=2;i<=n;i++)
{
scanf("%d",&a[1][i]);
if(a[1][i]>mem) a[2][i]=a[2][i-1]+1;
else
if(a[1][i]==mem) a[2][i]=a[2][i-1];
else a[2][i]=1,p=i;
/*u=i-1;
if(u-p+1>lmax) lmax=u-p+1,um=u,pm=p;
p=i;*/
a[3][i]=p;
mem=a[1][i];
}
for(int i=1;i<=n;i++)
if(lmax<a[2][i]) lmax=a[2][i],poz=i;
/*for(int i=1;i<=n;i++)
printf("%d ",a[3][i]);*/
printf("%d\n",lmax);
poz=a[3][poz];mem=a[1][poz];
printf("%d ",a[1][poz]);lmax--;
for(int i=poz+1;lmax;i++)
{
//if(a[2][i]==lmax) return 0;
if(a[1][i]>mem) printf("%d ",a[1][i]),lmax--;
mem=a[1][i];
}
return 0;
}
/*
scanf("%d",&n);
scanf("%d",&x);
v.push_back(x);
for(int i=2;i<=n;i++)
{
scanf("%d",&y);
if(y>x) v.push_back(y);
}*/