BOJ 1072ゲーム
3805 ワード
https://www.acmicpc.net/problem/1072
input : X, Y ( 1 <= X <= 1,000,000,000)(0 <= Y <= X) output :
出力には少なくともゲームが必要です
(Zが変わらない場合は-1) 初めて入力したY/Xは変わりますか?
{Y+(追加されたゲーム数)/X+(追加されたゲーム数)}100
->Y/X}100とは違いますか?
注意事項
1.今探しているのは一番少ない板の数です.
endに集中するのではなく
始まりが答えだ.
1敗であれば99->100には届かない.
異常処理が必要です.
分けるとミス型が出てきます.
比較するために、整数型を選びましょう.
そして直接彼に数学で計算させることもできます.
勝率Z+1の付加板数がKの場合、Z+1=100(Y+K/X+K)となる.
したがって、K=(Z+1)X−100*Y)/(99−Z)は、このような式を生成することができる.
input :
出力には少なくとも
(Zが変わらない場合は-1)
{Y+(追加されたゲーム数)/X+(追加されたゲーム数)}100
->Y/X}100とは違いますか?
注意事項
1.今探しているのは一番少ない板の数です.
endに集中するのではなく
始まりが答えだ.
1敗であれば99->100には届かない.
異常処理が必要です.
分けるとミス型が出てきます.
比較するために、整数型を選びましょう.
import sys
X, Y = map(int, sys.stdin.readline().split())
pivot = int(Y * 100 / X)
start = 0
end = 1000000000
while start <= end:
mid = (start + end) // 2
compare = int((Y + mid) * 100 / (X + mid))
if compare > pivot:
end = mid - 1
else:
start = mid + 1
if pivot >= 99:
print(-1)
else:
print(start)
そして直接彼に数学で計算させることもできます.
勝率Z+1の付加板数がKの場合、Z+1=100(Y+K/X+K)となる.
したがって、K=(Z+1)X−100*Y)/(99−Z)は、このような式を生成することができる.
Reference
この問題について(BOJ 1072ゲーム), 我々は、より多くの情報をここで見つけました https://velog.io/@jsin2475/BOJ-1072-게임テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol