前提
ABC046 C問題を解いていたのですが、解法は思いついたものの、なぜかACしなかったので調べたら何故か以下の処理を使用していました。
何が違いなのですか?
方針
- 今現在の高橋くんの票数 now_T
- 今現在の青木くんの票数 now_A
として、
now_T >= nT[i]
now_A >= nA[i]
両方を満たすようなnを探す。探す方法としては上の不等式から、
max(now_T / T[i], now_A / A[i[)
ただし、切り上げをした値。
自分と他のコードの違い
自分は切り上げなので、math.ceil関数を使用。
調べたコードは (now_T + T[i] - 1) // T[i] としていた。
python
1import math 2 3 4N = int(input()) 5T, A = [None] * N, [None] * N 6for i in range(N): 7 T[i], A[i] = map(int, input().split()) 8 9for i in range(N): 10 if i == 0: 11 now_T, now_A = T[i], A[i] 12 continue 13 14 # my code 15 n = max(math.ceil(now_T/T[i]), math.ceil(now_A/A[i])) 16 # research code 17 n = max((now_T + T[i] - 1)//T[i], (now_A + A[i] - 1)//A[i]) 18 19 now_T = T[i] * n 20 now_A = A[i] * n 21 22print(now_T + now_A)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。