Official

B - Nutrients Editorial by kyopro_friends


この問題は2次元配列の操作を適切に行うことができれば解くことができます。

栄養素ごとに合計量を求め、その全てが目標値を超えているかを判定します。添字の取り違えなどに注意してください。

実装例(C)

#include <stdio.h>
int main(){
	int n, m;
	scanf("%d%d", &n, &m);

	int a[100];
	for(int i=0; i<m; i++){
		scanf("%d", &a[i]);
	}

	int x[100][100];
	for(int i=0; i<n; i++){
		for(int j=0; j<m; j++){
			scanf("%d", &x[i][j]);
		}
	}

	for(int j=0; j<m; j++){
		// 栄養素 j について判定する
		int sum = 0;
		for(int i=0; i<n; i++){
			sum += x[i][j];
		}
		if(sum < a[j]){
			puts("No");
			return 0;
		}
	}

	puts("Yes");
}

実装例(Python)

N, M = map(int,input().split())
A = list(map(int,input().split()))
X = [list(map(int,input().split())) for _ in range(N)]

for j in range(M):
  s = 0
  for i in range(N):
    s += X[i][j]
  if s < A[j]:
    print("No")
    exit()

print("Yes")

posted:
last update: