Pagini recente » Cod sursa (job #1030319) | Cod sursa (job #2983447) | Cod sursa (job #1682859) | Cod sursa (job #8464) | Cod sursa (job #1045834)
#include <stdio.h>
using namespace std;
FILE *f,*g;
int n,i,poz;
long long l[100004],a[100009];
long long max1;
void recur (int i,int sum)
{ int j;
if (sum>1) for (j=i;j>=1;j--)
{
if (sum==l[j]+1 && a[j]<a[i+1])
{recur (j-1,l[j]);
fprintf (g,"%d ",a[j]);
break;}
}
}
int main()
{f=fopen ("scmax.in","r");
g=fopen ("scmax.out","w");
int j;
fscanf (f,"%d",&n);
for (i=1;i<=n;i++)
fscanf (f,"%d",&a[i]);
for (i=1;i<=n;i++)
{ x[i-1]=a[i-1];
up (i-1);
if (l[i]==0)
{
l[i]=1;
}
}
fprintf (g,"%d\n",max1);
recur (poz-1,max1);
fprintf (g,"%d ",a[poz]);
return 0;
}