Pagini recente » Cod sursa (job #699260) | Cod sursa (job #2651316) | Cod sursa (job #1975467) | Cod sursa (job #2815125) | Cod sursa (job #2712510)
#include <bits/stdc++.h>
#define dim 5009
using namespace std;
ifstream fin ("subsir2.in");
ofstream fout("subsir2.out");
int n,v[dim],len[dim],len_min=INT_MAX,minim;
int32_t main()
{
fin>>n;
for(int i=1;i<=n;i++)
fin>>v[i];
for(int i=n;i>=1;i--){
len[i]=INT_MAX;
minim=INT_MAX;
for(int j=i+1;j<=n;j++)
if(v[i]<=v[j]&&v[j]<minim){
len[i]=min(len[i],len[j]+1);
minim=v[j];
}
if(len[i]==INT_MAX)
len[i]=1;
}
minim=INT_MAX;
for(int i=1;i<=n;i++)
if(v[i]<minim){
len_min=min(len_min,len[i]);
minim=v[i];
}
fout<<len_min<<'\n';
int i=0;
minim=INT_MIN;
while(len_min){
int minim1=INT_MAX;
for(int j=i+1;j<=n;j++)
if(v[j]>=minim&&v[j]<minim1){
if(len[j]==len_min)
i=j;
minim1=v[j];
}
fout<<i<<' ';
minim=v[i];
len_min--;
}
}