Pagini recente » Cod sursa (job #2945303) | Cod sursa (job #739238) | Cod sursa (job #1737824) | Cod sursa (job #593348) | Cod sursa (job #2959306)
#include<fstream>
using namespace std;
ifstream F("subsir2.in");
ofstream G("subsir2.out");
int n,i,a[5001],l[5001],p[5001],m,j,k,t,r=1e6,c[5001];
bool b[5001];
int main()
{
for(F>>n,i=1;i<=n;F>>a[i++]);
for(l[n]=1,i=n-1;i;l[i]=l[i]==n?1:l[i],--i)
for(m=1e6,l[i]=n,j=i+1;j<=n;++j)
if(a[j]>=a[i]&&a[j]<m)
if(m=a[j],l[i]>=l[j]+1)
l[i]=l[j]+1,p[i]=j;
for(i=1;i<=n;++i)
if(!b[i]) {
for(m=0,j=i;j;b[j]=1,j=p[j],++m);
if(m<r)
for(r=0,j=i;j;c[++r]=j,j=p[j]);
}
for(G<<r<<'\n',i=1;i<=r;G<<c[i++]<<' ');
return 0;
}