AlenAntonelli

DP [2D] -> (DDP2)

Jun 23rd, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.70 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. int main ()
  7. {
  8.     int n, m, q;
  9.     cin>>n>>m;
  10.    
  11.     vector< vector<int> > mat (n, vector<int> (m) );
  12.     vector< vector<int> > DP (n+1, vector<int> (m+1, 0) );
  13.    
  14.     for (int i=0; i<n; i++)
  15.         for (int j=0; j<m; j++)
  16.             cin>>mat[i][j];
  17.            
  18.     for (int i=1; i<=n; i++)
  19.         for (int j=1; j<=m; j++)
  20.             DP[i][j] = DP[i][j-1] + DP[i-1][j] + mat[i-1][j-1] - DP[i-1][j-1];
  21.        
  22.     cin>>q;
  23.     int ax, ay, bx, by;
  24.    
  25.     for(int i=0; i<q; i++)
  26.     {
  27.         cin>>ax>>ay>>bx>>by;
  28.         cout<< DP[bx+1][by+1] - DP[bx+1][ay] - DP[ax][by+1] + DP[ax][ay]<<endl;
  29.     }
  30.     return 0;
  31. }
Advertisement
Add Comment
Please, Sign In to add comment