문제 바로가기> 백준 1072번: 게임
z가 99 이상인 경우는 확률이 절대 변할 수 없으므로 -1을 출력해주었고, 이외의 경우에는 binary search를 적용하여 최소 몇 게임을 더해야하는지 구해주었다.
#include <iostream>
using namespace std;
int main(){
ios_base::sync_with_stdio(false); cin.tie(NULL);
long long x, y; cin >> x >> y;
long long z = y*100/x;
if(99<=z) cout << -1;
else{
long long low=0, high=1000000000;
while (low<=high){
long long mid = (low+high)/2;
int tmpz = ((y+mid)*100)/(x+mid);
if(z<tmpz) high=mid-1;
else low=mid+1;
}
cout << low;
}
}