문제
풀이

💡Idea

구하고 싶은 값을 K라고 두었을 때, 다음과 같은 식을 세울 수 있다. \(\frac{Y+K}{X+K} = Z + 1\) K에 대하여 정리하면 다음과 같다. \(K = \frac{100Y - (Z + 1)X}{Z - 99}\) 식에서도 알 수 있듯이, Z가 99면 K가 존재할 수 없고, Z가 100이면, 당연하게도 승률이 100보다 커질 수 없으므로 K가 존재할 수 없다. 따라서 Z가 99거나 100이면 -1을 출력하면 된다.

🔑Code

#include <bits/stdc++.h>
using namespace std;

long long x, y;

int main(void){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin >> x >> y;
    long long z = y * 100 / x;

    // 승률 99%에서는 더 못올린다. 수식으로 증명 가능.
    if(z >= 99) {
        cout << -1;
        return 0;
    }

    long long p = x*z + x - 100 * y;
    long long q = 99 - z;
    long long a = p / q;
    if(a*q < p) a++;
    cout << a;

    return 0;
}

🗨️ Side Notes

아자아자!

태그:

카테고리: ,

업데이트: