문제의 목적은 승률 z를 1 증가시키기 위해 최소한 몇 번 이겨야 하는지를 구하는 것입니다.
- 처음 승률 z=xy×100
- 승률을 1 증가시키기 위해 게임을 α번 진행했을 때 승률 z+1=x+αy+α×100
최소 게임 수를 구하기 위해 식을 α에 대한 식으로 정리해줍니다.
z+1=x+αy+α×100
(z+1)(x+α)=100y+100α
(z+1)α−100α=100y−(z+1)x
∴α=z−99100y−(z+1)x
x,y,z를 대입시켜 α를 구해줍니다. 여기서 α의 값이 소수가 되는 경우에는 값을 올림해줘서 최소 게임 수를 구합니다.
단, 확률이 99% 이상인 경우에는 더 이상 승률을 증가시킬 수 없습니다. 이 때는 -1을 출력합니다.
import sys
import math
x, y = map(int, sys.stdin.readline().split())
z = int(100 * y / x)
if z >= 99:
print(-1)
else:
print(math.ceil((100 * y - (z + 1) * x) / (z - 99)))