Cod sursa(job #793186)

Utilizator misinozzz zzz misino Data 2 octombrie 2012 10:37:53
Problema Subsir 2 Scor 36
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#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;
}