AtCoderPetrozavodskContest001 B 問題 300 点 「Two Arrays」
AtCoderPetrozavodskContest001 B 問題 300 点 「Two Arrays」
問題概要
制約
解法
どの要素にどれだけ足すかはあまり考えなくてよい。問題は要素ごとの差の合計を考える。 ある要素$ a_i, b_i$について考える。
- もし$ a_i \le b_i$の時
- B 側には$ \frac{b_i - a_i}{2}$だけ足される
- そうでない場合
- A 側には$ a_i - b_i$だけ足される
$ 1 \le i \le N$について以上の操作を行うことで,それぞれに何回加算されるかがわかる。$ A \ge B$となれば条件を満たす。<– これがまだちゃんとわかっていない
お気持ち
AC コード
#coding: utf-8
N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))
# K = sum(B) - sum(A)
a, b = 0, 0
for i in range(N):
if A[i] < B[i]:
b += (B[i] - A[i]) // 2
else:
a += A[i] - B[i]
flag = a <= b
print("Yes" if flag else "No")