Pagini recente » Cod sursa (job #648559) | Cod sursa (job #2243306) | Cod sursa (job #1758553) | Cod sursa (job #2503111) | Cod sursa (job #357217)
Cod sursa(job #357217)
#include<stdio.h>
using namespace std;
#define dim 100003
long int n,i,s,max,j,maxim,nr;
int best[dim];
long long a[dim],v[dim];
int main()
{
FILE *f=fopen("scmax.in","r"), *g=fopen("scmax.out","w");
fscanf(f,"%ld",&n);
for(i=1;i<=n;i++)
fscanf(f,"%lld",&a[i]);
for(i=1;i<=n;i++)
{max=-1;
for(j=0;j<i;j++)
if(a[i]>a[j]&&best[j]>max)
{max=best[j];v[i]=j;}
best[i]=1+max; s=i;
if(best[i]>maxim) maxim=best[i];
}
fprintf(g,"%ld\n",maxim);
nr=0;
for(i=s;i>=1;i--)
{best[++nr]=a[i];i=v[i]+1;}
for(i=nr;i>=1;i--)
if(best[i]!=0)
fprintf(g,"%ld ",best[i]);
fprintf(g,"\n");
fclose(f);
fclose(g);
return 0;}