50202. Diamond
難度:3/5 Time Used: 12:241
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#define max(a,b) ((a)>(b)?(a):(b))
int h, w, k;
int arr[256][256] = {0};
int get_sum(int x, int y){
int ans = 0;
for(int i = -k + 1; i < k; i++){
int j = k - abs(i) - 1;
if(j == 0) ans += arr[x + i][y + j];
else ans += arr[x + i][y - j] + arr[x + i][y + j];
}
return ans;
}
int main(){
scanf("%d %d %d", &h, &w, &k);
for(int i = 0; i < h; i++){
for(int j = 0; j < w; j++){
scanf("%d", &arr[i][j]);
}
}
int max_num = INT_MIN;
for(int i = k - 1; i <= h - k; i++){
for(int j = k - 1; j <= w - k; j++){
max_num = max(max_num, get_sum(i, j));
}
}
printf("%d\n", max_num);
}