Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int n;
- int qs[1010];
- int dp[1010][1010];
- int subs(int f,int b){
- if(f==b) return 0;
- if(dp[f][b]!=0) return dp[f][b];
- int sf=/*front*/(qs[f]-qs[f-1])+/*Qs front+1->back*/(qs[b]-qs[f])+/*x2 min*/min((qs[f]-qs[f-1]),(qs[b]-qs[f]));
- int sb=/*back*/(qs[b]-qs[b-1])+/*Qs front->back-1*/(qs[b-1]-qs[f-1])+/*x2 min*/min((qs[b]-qs[b-1]),(qs[b-1]-qs[f-1]));
- return dp[f][b]=max(sf+subs(f+1,b),sb+subs(f,b-1));
- }
- int main(){
- int m;
- scanf("%d",&n);
- for(int i=1;i<=n;i++){
- scanf("%d",&m);
- qs[i]=qs[i-1]+m;
- }
- int ans=subs(1,n);
- printf("%d",ans);
- }
Advertisement
Add Comment
Please, Sign In to add comment