AOJ 0022 Maximum Sum Sequence
こんにちは川です。
今回は深さで解きました。
足していったときの今までで得ることができる大きい値とそのとき足さなかった時の値を見比べるみたいなことをしています。
#include<bits/stdc++.h>
using
namespace
std;
int
num[5000];
int
serch(
int
line,
int
now,
int
maxe)
{
if
(maxe==now)
return
line;
return
max(line,serch(line+num[now],now+1,maxe));
}
int
main()
{
int
n;
while
(cin>>n,n){
for
(
int
i=0;i<n;i++)cin>>num[i];
int
ans=num[0];
for
(
int
i=0;i<n;i++)ans=max(serch(num[i],i+1,n),ans);
cout<<ans<<endl;
}
}