Advertisement
DarkTXYZ

PROG-1150: Pangpu

Apr 23rd, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.53 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int n;
  6. int hole[1005];
  7. bool dp[2][60005];
  8.  
  9. int main(){
  10.     scanf("%d",&n);
  11.     for(int i=1;i<=n;i++)
  12.         scanf("%d",&hole[i]);
  13.     dp[0][30000] = true;
  14.     for(int k=1;k<=n;k++){
  15.         for(int j=-30000;j<=30000;j++){
  16.             int s = j - hole[k];
  17.             if(s < -30000)
  18.                 s += 60001;
  19.             else if(s > 30000)
  20.                 s -= 60001;
  21.             dp[k%2][j+30000] = dp[(k+1)%2][s+30000] or dp[(k+1)%2][j+30000];
  22.         }
  23.     }
  24.     for(int i=60000;i>=0;i--){
  25.         if(dp[n%2][i]){
  26.             printf("%d ",i-30000);
  27.             break;
  28.         }
  29.     }
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement