Pagini recente » Cod sursa (job #1498996) | Cod sursa (job #2750143) | Cod sursa (job #1311915) | Cod sursa (job #991915) | Cod sursa (job #1113382)
#include<stdio.h>
using namespace std;
FILE *f=fopen("scmax.in","r");
FILE *g=fopen("scmax.out","w");
int n,i,j,lpoz,k,ok,poz1;
long v[100001],l[100001],lmax,max1;
int main()
{
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
l[n]=1;
lmax=1;
lpoz=n;
for(i=n-1;i>=1;i--)
{
ok=0;
l[i]=1;
max1=0;
poz1=i;
for(j=i+1;j<=n;j++)
if(v[j]>v[i]&&l[j]>max1)
{
max1=l[j];
// poz1=j;
}
l[i]=max1+1;
if(l[i]>lmax)
{
lmax=l[i];
lpoz=i;
}
}
fprintf(g,"%d\n%d ",lmax,v[lpoz]);
k=lmax;
i=lpoz;
while(i<=n&&k>0)
{
j=i+1;
ok=0;
while(j<=n&&!ok)
{
if(v[j]>v[i]&&l[j]==k-1)
{
ok=1;
k--;
fprintf(g,"%d ",v[j]);
}
j++;
}
i++;
}
fclose(f);
fclose(g);
return 0;
}