Pagini recente » Cod sursa (job #2498262) | Cod sursa (job #1759295) | Cod sursa (job #2483671) | Cod sursa (job #2594426) | Cod sursa (job #1668299)
#include <fstream>
using namespace std;
ifstream f("subsir2.in");
ofstream g("subsir2.out");
int n,a,i,j,lc,mi,ma,k,v[5001],s[5001],l[5001];
int main()
{ f>>n;
for (i=1;i<=n;++i)
f>>v[i];
l[n]=1;
s[n]=0;
for (i=n-1;i>=1;--i) {
ma=0;
for (j=i+1;j<=n;++j)
if (v[j]>v[i] )
if (l[j]>ma) {
ma=l[j];
k=j;}
else
if (l[j]==ma)
if (v[j]<v[k])
k=j;
s[i]=k;
l[i]=ma+1;}
ma=0;
for (i=1;i<=n;++i)
if (l[i]>ma) {
ma=l[i];
k=i;}
g<<ma<<'\n'<<k<<" ";
k=s[k];
--ma;
while (ma) {
g<<k<<" ";
k=s[k];
--ma;
}
g<<'\n';
return 0;
}