Advertisement
SuitNdtie

game2

May 7th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.01 KB | None | 0 0
  1. #include<stdio.h>
  2. int n,m;
  3.  
  4. int board[210][210];
  5.  
  6. int max(int a,int b){
  7.     return (a > b ? a : b);
  8. }
  9. int min(int a,int b){
  10.     return (a < b ? a : b);
  11. }
  12.  
  13. int dpmax[210][210];
  14. int dpmin[210][210];
  15.  
  16. int calmax(int I,int J){
  17.     if(I >= n || J >= m){
  18.         return -1e9;
  19.     }
  20.     if(I == n - 1 && J == m - 1){
  21.         return board[I][J];
  22.     }
  23.     if(dpmax[I][J] != -1)return dpmax[I][J];
  24.    
  25.     return dpmax[I][J] = max(calmax(I+1,J),calmax(I,J+1)) + board[I][J];
  26. }
  27.  
  28. int calmin(int I,int J){
  29.     if(I >= n || J >= m){
  30.         return 1e9;
  31.     }
  32.     if(I == n - 1 && J == m - 1){
  33.         return board[I][J];
  34.     }
  35.     if(dpmin[I][J] != -1)return dpmin[I][J];
  36.    
  37.     return dpmin[I][J] = min(calmin(I+1,J),calmin(I,J+1)) + board[I][J];
  38. }
  39.  
  40. int main()
  41. {
  42.     for(int i = 0 ; i < 210 ; i ++){
  43.         for(int j = 0 ; j < 210 ; j ++){
  44.             dpmax[i][j] = -1;
  45.             dpmin[i][j] = -1;
  46.         }
  47.     }
  48.     scanf("%d %d",&n,&m);
  49.     for(int i = n - 1 ; i >= 0 ; i --){
  50.         for(int j = 0 ; j < m ; j ++){
  51.             scanf("%d",&board[i][j]);
  52.         }
  53.     }
  54.     printf("%d",calmax(0,0) - calmin(0,0));
  55.     return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement