Pagini recente » Cod sursa (job #106131) | Cod sursa (job #128257) | Cod sursa (job #890391) | Cod sursa (job #2825120) | Cod sursa (job #1112051)
#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;
long v[100001],l[100001],lmax;
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;
for(j=i+1;j<=n&&!ok;j++)
{
if(v[j]>v[i])
{
l[i]=l[j]+1;
ok=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;
}