Pagini recente » Cod sursa (job #1531607) | Cod sursa (job #2940554) | Cod sursa (job #1618272) | Cod sursa (job #2529079) | Cod sursa (job #1666894)
#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;i>=1;--i) {
ma=0;
k=0;
mi=999999999;
lc=0;
for (j=i+1;j<=n;++j) {
if (v[j]>=v[i] && l[j]>=ma && v[j]-v[i]<=mi) {
ma=l[j];
mi=v[j]-v[i];
if (l[j]==l[k] && l[k]<l[j])
a=1;
else
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;
}