VBOARD - Bàn cờ
Tác giả: skyvn97
Ngôn ngữ: C++
#include<stdio.h>
#define MAX 555
int a[MAX][MAX];
int b[MAX][MAX];
int w[MAX][MAX];
int n,q;
int abs(int x) {
if (x<0) return (-x); else return (x);
}
void init(void) {
scanf("%d",&n);
int i,j;
for (i=0;i<=n;i=i+1) {
b[i][0]=0;
b[0][i]=0;
w[i][0]=0;
w[0][i]=0;
}
for (i=1;i<=n;i=i+1)
for (j=1;j<=n;j=j+1) {
scanf("%d",&a[i][j]);
b[i][j]=b[i-1][j]+b[i][j-1]-b[i-1][j-1]+a[i][j]*((i+j)%2==1);
w[i][j]=w[i-1][j]+w[i][j-1]-w[i-1][j-1]+a[i][j]*((i+j)%2==0);
}
}
void process(void) {
int i,sb,sw,x,y,z,t;
scanf("%d",&q);
for (i=1;i<=q;i=i+1) {
scanf("%d",&x);
scanf("%d",&y);
scanf("%d",&z);
scanf("%d",&t);
sb=b[z][t]-b[x-1][t]-b[z][y-1]+b[x-1][y-1];
sw=w[z][t]-w[x-1][t]-w[z][y-1]+w[x-1][y-1];
printf("%d\n",abs(sw-sb));
}
}
int main(void) {
init();
process();
}