Pagini recente » Cod sursa (job #1359508) | Cod sursa (job #1756798) | Cod sursa (job #2269951) | Cod sursa (job #1134427) | Cod sursa (job #1672974)
#include <fstream>
using namespace std;
ifstream f("subsir2.in");
ofstream g("subsir2.out");
int n,i,j,mi,nr,k,v[50001],l[50001],p[50001];
int main()
{f>>n;
for(i=1;i<=n;++i)
f>>v[i];
l[n]=1;
p[n]=n;
v[0]=-999999999;
for (i=n;i>=0;--i)
{ mi=999999999;
l[i]=999999999;
for (j=i+1;j<=n;++j)
if (v[j]<mi && v[i]<=v[j])
{mi=v[j];
nr=l[j]+1;
if (l[i]==nr && v[j]<v[p[i]])
p[i]=j;
if (nr<l[i])
{l[i]=nr;
p[i]=j;}}
if (l[i]==999999999)
{
l[i]=1;
p[i]=i;}}
g<<l[0]-1<<'\n';
k=0;
while (k!=p[k])
{
k=p[k];
g<<k<<" ";
}
g<<'\n';
return 0;
}