公式

B - Blocks on Grid 解説 by en_translator


It is optimal to set them to the minimum value in the grid.

First find the minimum value, and then calculate the sum of each element subtracted by the minimum value.

Sample Code (C)

#include<stdio.h>

int a[110][110];
int main(){
	int h,w;
	scanf("%d%d",&h,&w);
	for(int i=0;i<h;i++)for(int j=0;j<w;j++)scanf("%d",&a[i][j]);
	int m=1e9;
	for(int i=0;i<h;i++)for(int j=0;j<w;j++)if(m>a[i][j])m=a[i][j];
	int ans=0;
	for(int i=0;i<h;i++)for(int j=0;j<w;j++)ans+=a[i][j]-m;
	printf("%d\n",ans);
}

Sample Code (Python)

import numpy as np
H,W = map(int,input().split())
A = [list(map(int,input().split())) for _ in range(H)]
A = np.array(A)
print(np.sum(A-np.min(A)))

Note that this problem can also be solved in an \(O(1)\) time.

投稿日時:
最終更新: