Skip to content

Commit 5c9e95c

Browse files
committed
game_of_sum
1 parent 851478b commit 5c9e95c

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

DP/game_of_sum/10891.cpp

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#include <iostream>
2+
#include <string.h>
3+
using namespace std;
4+
#define inf 999999
5+
#define max(a,b) a > b ? a : b
6+
int n ;
7+
int dp[105][105];
8+
int a[105],sum[105];
9+
10+
int get_sum(int i , int j){
11+
return sum[j]-sum[i-1];
12+
}
13+
int solve(int l, int r)
14+
{
15+
if(l > r) return 0;
16+
if(l == r) return a[l];
17+
int &ret = dp[l][r];
18+
if(ret != -1) return ret;
19+
ret = -inf ;
20+
for(int i = l; i <= r; i++)
21+
{
22+
ret = max(ret, get_sum(l,i) - solve(i+1, r));
23+
ret = max(ret, get_sum(i,r) - solve(l, i-1));
24+
}
25+
return ret;
26+
}
27+
int main()
28+
{
29+
while(cin >> n && n){
30+
memset(sum,0,sizeof sum);
31+
for(int i = 1 ; i <= n ; i++ ) {
32+
cin >> a[i];
33+
sum[ i ] = sum[ i-1 ] + a[i] ;
34+
}
35+
memset(dp,-1,sizeof dp);
36+
int ret = solve(1,n);
37+
cout << ret << endl;
38+
}
39+
}

0 commit comments

Comments
 (0)