川のブログ

川の適当気ままなブログです。 

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;
    }
}