Pagini recente » Cod sursa (job #3125996) | Cod sursa (job #2787626) | Cod sursa (job #2656208) | Cod sursa (job #1720322) | Cod sursa (job #793186)
Cod sursa(job #793186)
#include<fstream>
using namespace std;
ifstream f("subsir2.in");
ofstream g("subsir2.out");
int maxi,poz,i,j,n,a[5001],l[5001],p[5001];
int main()
{f>>n;
for(i=1;i<=n;++i)
f>>a[i];
a[n+1]=1000001;
for(i=n;i;--i)
{maxi=-1;
for(j=i+1;j<=n+1;++j)
if(a[i]<=a[j])
{if(l[j]>maxi)
{maxi=l[j];
poz=j;
}
else
if(l[j]==maxi)
if(a[j]<a[poz])
{poz=j;
}}
l[i]=maxi+1;
p[i]=poz;
}
for(i=1;i<=n;++i)
if(l[i]>maxi)
{maxi=l[i];
poz=i;
}
else
if(l[i]==maxi)
if(a[i<a[poz]])
poz=i;
g<<maxi<<'\n';
while(poz!=n+1)
{g<<poz<<' ';
poz=p[poz];
}
g<<'\n';
return 0;
}