VBOARD - Bàn cờ
Tác giả: khuc_tuan
Ngôn ngữ: C++
#include <iostream>
#include <sstream>
#include <queue>
#include <map>
#include <set>
#include <algorithm>
#include <vector>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
#define Rep(i,n) for(int i=0;i<(n);++i)
#define Lap(i,n) for(int i=1;i<=(n);++i)
#define For(i,a,b) for(int i=(a);i<=(b);++i)
#define Ford(i,a,b) for(int i=(a);i>=(b);--i)
#define Fit(i,v) for(__typeof(v.begin()) i=v.begin();i!=v.end();++i)
#define Fill(a,b) memset((a), (b), sizeof(a))
#define pb push_back
#define MP make_pair
#define pause system("pause");
typedef long long LL;
int a[505][505];
int n;
int den[505][505], tr[505][505];
int main() {
scanf("%d", &n);
Lap(i,n) Lap(j,n) scanf("%d", &a[i][j]);
Lap(i,n) Lap(j,n) {
den[i][j] = den[i-1][j] + den[i][j-1] - den[i-1][j-1];
tr[i][j] = tr[i-1][j] + tr[i][j-1] - tr[i-1][j-1];
if((i+j)%2==0) tr[i][j] += a[i][j];
else den[i][j] += a[i][j];
}
int q;
scanf("%d", &q);
Lap(kk,q) {
int x, y, u, v;
scanf("%d%d%d%d", &x, &y, &u, &v);
int trang = tr[u][v] - tr[x-1][v] - tr[u][y-1] + tr[x-1][y-1];
int _den = den[u][v] - den[x-1][v] - den[u][y-1] + den[x-1][y-1];
int res = abs(trang-_den);
printf("%d\n", res);
}
//pause
return 0;
}