Pagini recente » Cod sursa (job #1091048) | Cod sursa (job #728873) | Cod sursa (job #2688874) | Cod sursa (job #3201115) | Cod sursa (job #2962595)
#include<fstream>
using namespace std;
ifstream F("subsir2.in");
ofstream G("subsir2.out");
int n,i,a[5001],l[5001],p[5001],m,j;
bool r[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]==5001?1:l[i],--i)
for(m=1000001,l[i]=5001,j=i+1;j<=n;++j) {
if(a[j]>=a[i]&&a[j]<m)
if(m=a[j],l[i]>l[j])
l[i]=l[j]+1,p[i]=j;
if(a[j]>=a[i])
r[j]=1;
}
for(j=1,i=2;i<=n;++i)
if(!r[i]&&l[i]<=l[j]&&a[i]<a[j])
j=i;
for(G<<l[j]<<'\n';j;G<<j<<' ',j=p[j]);
return 0;
}