72 lines
2.1 KiB
C++
72 lines
2.1 KiB
C++
#include <cstdio>
|
|
#include <iostream>
|
|
using namespace std;
|
|
int main()
|
|
{
|
|
int xy, r;
|
|
//bool a[251][251]={0};
|
|
int ans[252][252] = { 0 };
|
|
cin >> xy >> r;
|
|
for (int i = 1; i <= xy; i++) {
|
|
for (int j = 1; j <= xy; j++) {
|
|
bool u;
|
|
cin >> u;
|
|
if (u == 1) {
|
|
// printf("(%d,%d):", i, j);
|
|
int qx = i - r, qy = j - r;
|
|
int hx = i + r + 1, hy = j + r + 1;
|
|
if (qx < 1) {
|
|
qx = 1;
|
|
}
|
|
if (qy < 1) {
|
|
qy = 1;
|
|
}
|
|
if (hx > xy) {
|
|
hx = xy + 1;
|
|
}
|
|
if (hy > xy) {
|
|
hy = xy + 1;
|
|
}
|
|
// printf("(%d,%d) (%d,%d) ", qx, qy, hx, hy);
|
|
ans[qx][qy]++;
|
|
ans[qx][hy]--;
|
|
ans[hx][qy]--;
|
|
ans[hx][hy]++;
|
|
// printf("(%d,%d) (%d,%d)\n", i,hy,j,hx);
|
|
}
|
|
}
|
|
}
|
|
// printf("\n");
|
|
// for (int i = 1; i <= xy; i++) {
|
|
// for (int j = 1; j <= xy; j++) {
|
|
// // ans[i][j]+=ans[i-1][j]+ans[i][j-1]-ans[i-1][j-1];
|
|
// cout << ans[i][j];
|
|
// if (j != xy) {
|
|
// cout << " ";
|
|
// } else {
|
|
// cout << endl;
|
|
// }
|
|
// }
|
|
// }
|
|
// printf("\n");
|
|
for (int i = 1; i <= xy; i++) {
|
|
for (int j = 1; j <= i-1; j++) {
|
|
ans[i][j] += ans[i - 1][j] + ans[i][j - 1] - ans[i - 1][j - 1];
|
|
}
|
|
for (int j = 1; j <= i - 1; j++) {
|
|
ans[j][i] += ans[j - 1][i] + ans[j][i - 1] - ans[j - 1][i - 1];
|
|
}
|
|
ans[i][i] += ans[i - 1][i] + ans[i][i - 1] - ans[i - 1][i - 1];
|
|
}
|
|
for (int i = 1; i <= xy; i++) {
|
|
for (int j = 1; j <= xy; j++) {
|
|
cout << ans[i][j];
|
|
if (j != xy) {
|
|
cout << " ";
|
|
} else {
|
|
cout << endl;
|
|
}
|
|
}
|
|
}
|
|
}
|