반응형
- " 1 ~ INT_MAX " 범위에서의 이분탐색을 통해 result 값을 갱신.
- result 값과 Z값을 비교한 결과 result값이 크다면 high 위치를 mid-1 로 변경, 반대일 경우 low 위치를 mid+1로 변경.
- answer값이 0 그대로라면 0출력, answer값에 변화가 있었다면 answer값 출력.
#include <iostream>
#include <climits>
using namespace std;
typedef long long ll;
ll x, y, z;
bool check(int mid) {
ll X = mid + x;
ll Y = mid + y;
ll result = Y*100/X;
if (result > z)return true;
else return false;
}
int main() {
cin >> x >> y;
z = y * 100/x;
ll l = 0;
ll h = INT_MAX;
ll answer = 0;
while (l <= h) {
ll mid = (l + h) / 2;
if (check(mid)) {
h = mid - 1;
answer = mid;
}
else l = mid + 1;
}
if (!answer)cout << -1;
else cout << answer;
}
반응형
'백준 > 이분탐색' 카테고리의 다른 글
[백준 18113번 / C++] 그르다 김가놈 (0) | 2022.02.16 |
---|---|
[백준 15810번 / C++] 풍선 공장 (0) | 2022.02.16 |
[백준 2776번 / C++] 암기왕 (0) | 2022.01.26 |
[백준 14627번 / C++] 파닭파닭 (0) | 2022.01.25 |
[백준 1561번 / C++] 놀이 공원 (0) | 2022.01.19 |
댓글