Pagini recente » Cod sursa (job #1116226) | Cod sursa (job #3207485) | Cod sursa (job #3299961) | Cod sursa (job #2568788) | Cod sursa (job #984634)
Cod sursa(job #984634)
#include<stdio.h>
int v[5005],d[5005];
unsigned a[5005],s[5005];
int main()
{
freopen("subsir2.in","r",stdin);
freopen("subsir2.out","w",stdout);
unsigned n,i,m=0,k,j,p;
int x;
scanf("%u",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&v[i]);
for(j=1;j<=m;j++)
if(v[i]<d[j])
{
d[j]=v[i];
a[i]=j;
break;
}
if(j==m+1)
{
m++;
d[m]=v[i];
a[i]=m;
}
}
printf("%u\n",m);
s[n+1]=m+1;
for(i=n;i>=1;i--)
if(s[i+1]==a[i]+1)
s[i]=a[i];
else
s[i]=s[i+1];
p=0;
for(j=1;j<=m;j++)
{
x=1000002;
for(i=p+1;i<=n;i++)
if(a[i]==j && v[i]<x && s[i]==j)
{
x=v[i];
p=i;
}
printf("%u ",p);
}
return 0;
}