Pagini recente » Cod sursa (job #2007736) | Cod sursa (job #1622491) | Cod sursa (job #1587729) | Cod sursa (job #667560) | Cod sursa (job #2036670)
#include <cstdio>
using namespace std;
FILE *f, *g;
int n,ma,maxi,i,k,j,v[5001],l[5001];
int main()
{f=fopen ("subsir2.in","r");
g=fopen ("subsir2.out","w");
fscanf (f,"%d",&n);
for (i=1;i<=n;++i)
fscanf (f,"%d",&v[i]);
l[n]=1;
for (i=n-1;i>=1;--i)
{ma=0;
for (j=i+1;j<=n;++j)
if (v[i]<v[j]&&l[j]>ma)
ma=l[j];
l[i]=ma+1;
}
maxi=k=0;
for (i=1;i<=n;++i)
if (l[i]>maxi)
maxi=l[i],k=i;
fprintf (g,"%d\n",maxi);
fprintf (g,"%d ",v[k]);
--maxi;
for (i=k+1;i<=n;++i)
if (l[i]==maxi&&v[k]<v[i])
{fprintf (g,"%d ",i);
k=i;
--maxi;
}
fprintf (g,"\n");
return 0;
}