Pagini recente » Cod sursa (job #413754) | Cod sursa (job #2661619) | Cod sursa (job #645717) | Cod sursa (job #2164455) | Cod sursa (job #359732)
Cod sursa(job #359732)
#include<stdio.h>
FILE *f=fopen("scmax.in","r");
FILE *g=fopen("scmax.out","w");
#define M 100000
long n,x[M],l[M];
void cit()
{
long i;
fscanf(f,"%ld",&n);
for(i=1;i<=n;i++)
fscanf(f,"%ld",&x[i]);
fclose(f);
}
int main()
{
long i,k,max,imax;
cit();
l[n]=1;
for(k=n-1;k>=1;k--)
{
l[k]=1;
i=k;
do
{i++;}
while(x[k]>x[i] && i<n);
if(x[k]<=x[i]) l[k]=l[i]+1;
}
max=0;
for(i=1;i<=n;i++)
if(l[i]>max) {max=l[i];
imax=i;}
fprintf(g,"%ld\n",max);
max=x[imax];
for(i=imax+1;i<=n;i++)
if(x[i]>=max) {max=x[i];
fprintf(g,"%ld ",max);}
fprintf(g,"\n");
fclose(g);
return 0;
}