Pagini recente » Cod sursa (job #1368442) | Cod sursa (job #3261013) | Cod sursa (job #1957283) | Cod sursa (job #55506) | Cod sursa (job #831121)
Cod sursa(job #831121)
#include<stdio.h>
int i,j,n,v[50001],vc[50001],ppminim,maxim,maximul,elemminim,pozminim;
int main(){
freopen("subsir2.in","r",stdin);
freopen("subsir2.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
vc[n]=1;
maximul=1;
for(i=n-1;i>=1;i--){
maxim=-1;
for(j=n;j>i;j--)
if(vc[j]>maxim&&v[j]>=v[i])
maxim=vc[j];
if(maxim!=-1)
vc[i]=maxim+1;
else
vc[i]=1;
if(vc[i]>maximul)
maximul=vc[i];
}
printf("%d\n",maximul);
ppminim=1;
while(maximul>0){
//il caut pe maximul
elemminim=1000001;
for(i=ppminim;i<=n;i++){
if(vc[i]==maximul&&v[i]<elemminim){
pozminim=i;
elemminim=v[i];
}
}
printf("%d ",pozminim);
ppminim=pozminim;
maximul--;
}
return 0;
}