Programming/Algorithm
[Algorithm] C++ 영지(territory) 선택 : (small)
100winone
2019. 12. 27. 12:23
입력설명
첫 줄에 H(세로길이)와 W(가로길이)가 입력된다. (5<=H, W<=50) 그 다음 H줄에 걸쳐 각 사 각형 지역에 오렌지의 나무 개수(1~9개) 정보가 주어진다. 그 다음 영지의 크기인 세로길이(1~H)와 가로길이(1~W)가 차례로 입력된
출력설명
첫 줄에 현수가 얻을 수 있는 오렌지 나무의 최대 개수를 출력한다
입력예제
6 7
3 5 1 3 1 3 2
1 2 1 3 1 1 2
1 3 1 5 1 3 4
5 1 1 3 1 3 2
3 1 1 3 1 1 2
1 3 1 3 1 2 2
2 3
출력예제
16
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;
int a[10][60];
int main() {
int n, m, w, h, i, j, k, s, sum = 0, max = -21470000;
scanf("%d %d", &h, &w);
for (i = 1; i <= h; i++) {
for (j = 1; j <= w; j++) {
scanf("%d", &a[i][j]);
}
}
scanf("%d %d", &n, &m);
for (i = 1; i <= h - n + 1; i++) {
for (j = 1; j <= w - m + 1; j++) {
sum = 0;
for (k = i; k < i + n; k++) {
for (s = j; s < j + m; s++) {
sum += a[k][s];
}
}
if (sum > max) max = sum;
}
}
printf("%d\n", max);
return 0;
}