์๋ 2๊ฐ์ง๋ง ๊ณ ๋ คํ๋ฉด ์ฝ๊ฒ ํ๋ฆฌ๋ ์ด๋ถํ์์ธ๋ฐ ๋ ๋ค ๋ชปํด์ ํ๋ ธ๋ค.
- ์น๋ฅ ์ ๊ตฌํ ๋ ์์์ ์ ๋ฒ๋ฆฌ๊ธฐ ์ํด ๊ณฑํด์ผ ํ๋ 100์ ์์น
- -1์ด ๋์ค๋ ๊ฒฝ์ฐ
์น๋ฅ ์ ๊ตฌํ๊ธฐ ์ํด์๋ X์ Y ์๋ฃํ์ double ๋ก ๋ณ๊ฒฝํด์ ๊ตฌํด์ผ ํ๋๋ฐ ์ด๋ ์์์ 2์๋ฆฌ๊น์ง๋ง ๊ตฌํ๊ณ ๋๋จธ์ง๋ ๋ฒ๋ฆฌ๋ ค๋ฉด 100์ ๊ณฑํด์ผ ํ๋ค. ๋ณดํต (Y/X) * 100 ์ด๋ ๊ฒ ๊ตฌํ๊ฒ ๋๋๋ฐ ์ด๋ ๊ฒ ๋๋ฉด X๊ฐ Y์ ๋นํด ๋๋ฌด ํฐ ๊ฒฝ์ฐ ์ ๋๋ก ๊ตฌํด์ง์ง ์์ ์ ์๋ค๊ณ ? ํ๋ค. ์๋ง ์ด๋ฏธ 0์ด ๋์ด๋ฒ๋ ค์ 100์ ๊ณฑํด๋ ์์ฉ์ด ์๋๋ด.. ๊ทธ๋์ Y ์ ๊ฐ๊น๊ฒ 100์ ๊ณฑํด์ผ ์ ๋๋ก ๊ตฌํด์ง๋ค.
๋ ๋ฒ์งธ๋ ์๋ฌด๋ฆฌ ์น๋ฆฌ๋ฅผ ํด๋ ์ ๋ ์ด๊ธธ ์ ์๋ ๊ฒฝ์ฐ์ธ๋ฐ ์น๋ฅ ์ด ์ด๋ฏธ 99ํผ ์ด์์ธ ๊ฒฝ์ฐ๋ ๋ ๋์ ๊ฒ 100๋ฐ์ ์๋๋ฐ ์ด๋ฏธ ์น๋ฅ ์ด 99๋ผ๋ ๊ฑด ๋ช ํ ์ก๋ค๋ ๊ฑฐ๊ณ ์น๋ฅ ์ด 100์ด๋ผ๋ ๊ฑด ๋จ ํ ๋ฒ๋ ์ง์ง ์์์ผ ๋์ฌ ์ ์๋ ์น๋ฅ ์ด๋ฏ๋ก 99์์ 100์ด ๋๋ ๊ฑด ๋ถ๊ฐ๋ฅํ๋ค.
import java.util.*;
import java.io.*;
public class Main {
static int transform(double X, double Y) {
return (int) ((100 * Y / X));
}
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
long X = sc.nextLong();
long Y = sc.nextLong();
int oddOfWinning = transform(X, Y);
if (oddOfWinning >= 99) {
System.out.println(-1);
} else {
long high = Long.MAX_VALUE;
long low = 0;
while (low <= high) {
long mid = (low + high) / 2;
if (transform(X + mid, Y + mid) > oddOfWinning) {
high = mid - 1;
} else {
low = mid + 1;
}
}
System.out.println(low);
}
}
}