AtCoder Beginner Contest 125
A - Biscuit Generator
a, b, t = [int(a) for a in input().split()] result = ((t + 0.5) // a) * b print(int(result))
B - Resale
n = int(input()) V = [int(a) for a in input().split()] C = [int(a) for a in input().split()] diff = [v - c for v,c in zip(V, C) if v - c > 0] result = int(sum(diff)) print(result)
C - GCD on Blackboard
n = int(input()) A = [int(a) for a in input().split()] A.sort() def func(): for i in range(A[1], 0, -1): yellow_card = 0 for a in A: if a % i > 0: yellow_card += 1 if yellow_card >= 2: break if yellow_card < 2: return i result = func() print(result)
D - Flipping Signs
の間の全ての整数 に対して「 と に を乗算する」操作を繰り返すと、 最終的には、両端の と だけが符号を反転され、他の値は変化しません。
従って、問題文の操作を次のように置き換えても等価な問題になります。
操作: を満たす整数 を選ぶ。 と に を乗算する。
の中に負数が偶数個あれば、操作を繰り返して全てを正数に変えることができます。
の中に負数が奇数個あれば、操作を繰り返して任意の1つ以外全てを正数に変えることができます。
n = int(input()) A = [int(a) for a in input().split()] num_negative = sum(a < 0 for a in A) A_abs = [abs(a) for a in A] if num_negative % 2 == 0: result = sum(A_abs) else: result = sum(A_abs) - 2 * min(A_abs) print(result)