DontCallMeNuttoPleas

Apoint Substring

Mar 28th, 2020
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.60 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int n;
  4. int qs[1010];
  5. int dp[1010][1010];
  6. int subs(int f,int b){
  7.     if(f==b) return 0;
  8.     if(dp[f][b]!=0) return dp[f][b];
  9.     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]));
  10.     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]));
  11.     return dp[f][b]=max(sf+subs(f+1,b),sb+subs(f,b-1));
  12. }
  13.  
  14. int main(){
  15.     int m;
  16.     scanf("%d",&n);
  17.     for(int i=1;i<=n;i++){
  18.         scanf("%d",&m);
  19.         qs[i]=qs[i-1]+m;
  20.     }
  21.     int ans=subs(1,n);
  22.     printf("%d",ans);
  23. }
Advertisement
Add Comment
Please, Sign In to add comment