#include <stdio.h>
int main()
{
int m, n, x, y;
int k[100][100]= {};
int ka[100][100]= {};
int i, j;
int p, l, max, sum=0;
int fr;
scanf("%d %d %d %d",&m, &n, &x, &y);
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
scanf("%d", &k[i][j]);
}
}
for(i=0; i<m; i++)
{
for(p=0; p<n; p++)
{
for(l=0; l<x; l++)
{
sum=0;
for(fr=0; fr<y; fr++)
{
sum+=k[l][fr];
}
if(max<sum)
{
max = sum;
sum = 0;
}
}
}
}
printf("%d", max);
return 0;
}
#include <stdio.h>
int main()
{
int m, n, x, y;
int k[100][100];
int max = 0, sum = 0;
int i, j, p, l;
scanf("%d %d %d %d", &m, &n, &x, &y);
for(i = 0; i < n; i++)
{
for(j = 0; j < m; j++)
{
scanf("%d", &k[i][j]);
}
}
for(i = 0; i <= n - y; i++) //세로
{
for(j = 0; j <= m - x; j++) //가로
{
sum = 0;
for(p = i; p < i + y; p++) //세로
{
for(l = j; l < j + x; l++)//가로
{
sum+=k[p][l];
}
}
if(sum > max)
{
max = sum;
}
}
}
printf("%d", max);
return 0;
}
#include <stdio.h>
int main() {
int m, n, x, y;
int k[100][100];
int max = 0, sum = 0;
int i, j, p, l;
// 사용자로부터 m, n, x, y 값을 입력받음
scanf("%d %d %d %d", &m, &n, &x, &y);
// 사용자로부터 각 칸의 비옥도를 입력받음
for(i = 0; i < m; i++) {
for(j = 0; j < n; j++) {
scanf("%d", &k[i][j]);
}
}
// 모든 가능한 x*y 구역에 대해 비옥도의 합을 계산
for(i = 0; i <= m - x; i++) {
for(j = 0; j <= n - y; j++) {
sum = 0;
for(p = i; p < i + x; p++) {
for(l = j; l < j + y; l++) {
sum += k[p][l];
}
}
if(sum > max) {
max = sum;
}
}
}
// 최대 비옥도 합을 출력
printf("%d", max);
return 0;
}
아니 이거 생각보다 어렵네;;