Pagini recente » Cod sursa (job #221359) | Cod sursa (job #647651) | Cod sursa (job #1765330) | Cod sursa (job #1636985) | Cod sursa (job #800090)
Cod sursa(job #800090)
#include<stdio.h>
int a[5001],v[5001],n,u,min,minl,p[5001],poz;
bool bif[5001];
FILE *fin,*fout;
void citire()
{
fin=fopen("subsir2.in","r");
fscanf(fin,"%d",&n);
for(int i=1;i<=n;i++)
{
fscanf(fin,"%d",&v[i]);
}
}
void afisare()
{
fout=fopen("subsir2.out","w");
fprintf(fout,"%d\n",min);
while(poz!=0)
{
fprintf(fout,"%d ",poz);
poz=p[poz];
}
}
int main()
{
citire();
for(int i=n;i>=1;i--)
{
min=1000001;
minl=n+1;
a[i]=1;
bif[i]=1;
for(int j=i+1;j<=n;j++)
{
if(v[j]>=v[i])
{
if(a[j]<minl && v[j]<min)
{
minl=a[j];
p[i]=j;
a[i]=a[j]+1;
}
else
if(a[j]==minl && v[j]<min && v[j]<v[p[i]])
{
p[i]=j;
}
if(v[j]<min)
{
min=v[j];
}
bif[j]=0;
}
}
}
min=n+1;
for(int i=1;i<=n;i++)
{
if(bif[i])
{
if(a[i]<min)
{
min=a[i];
poz=i;
}
else
if(a[i]==min && v[poz]>v[i])
{
poz=i;
}
}
}
afisare();
return 0;
}