Pagini recente » Cod sursa (job #1740716) | Cod sursa (job #2906765) | Cod sursa (job #767901) | Cod sursa (job #884860) | Cod sursa (job #907126)
Cod sursa(job #907126)
#include<cstdio>
using namespace std;
int l[100001],i,max1,n,j,ok,poz;
long s[100001];
int main()
{FILE *f = fopen("scmax.in", "r");
FILE *g = fopen("scmax.out", "w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%ld",&s[i]);
l[n]=1;
for(i=n-1;i>=1;i--)
{max1=1;l[i]=1;ok=0;
for(j=i+1;j<=n;j++)
if(s[i]<s[j]&&max1<=l[j])
{ max1=l[j];
ok=1;}
if(ok)l[i]=max1+1;
}
/*for(i=1;i<=n;i++)
g<<l[i]<<" ";
g<<'\n';*/
max1=l[1];poz=1;
for(i=1;i<=n;i++)
if(l[i]>max1)
{max1=l[i];
poz=i;}
fprintf(g,"%d",max1);
fprintf(g,"\n");
fprintf (g,"%ld ",s[poz]);
max1--;
for(i=poz+1;i<=n;i++)
if(l[i]==max1&&s[i]>=s[poz])
{fprintf(g,"%ld ",s[i]);poz=i;max1--;}
fclose(f);
fclose(g);
return 0;
}