BOJ 1072번 게임 문제
이분탐색으로 풀면 된다. 99%일때 예외 경우를 따로 해줘야한다. 1패라도 있으면 승률이 100%가 될 수 없다.
1072.cpp
#include <bits/stdc++.h>
#define MAX_ 1000000000
using namespace std;
typedef long long ll;
int main() {
ll x, y, z, low, high, mid, test_z;
cin >> x >> y;
z = 100 * y / x;
if (z >= 99) {
cout << -1;
return 0;
}
low = 0;
high = MAX_;
while (low <= high) {
mid = (low + high) / 2;
test_z = 100 * (y + mid) / (x + mid);
if (z < test_z) {
high = mid - 1;
} else {
low = mid + 1;
}
}
cout << low;
}
'알고리즘 & SQL > 백준(BOJ)' 카테고리의 다른 글
백준 2503번 : 숫자 야구 C++ (0) | 2019.01.28 |
---|---|
백준 1213번 : 팰린드롬 만들기 C++ (0) | 2019.01.28 |
백준 10539번 : 수빈이와 수열 C++ (0) | 2019.01.15 |
백준 2953번 : 나는 요리사다 C++ (0) | 2019.01.15 |
백준 1193번 : 분수찾기 C++ (0) | 2019.01.15 |