悬关
查看原帖
悬关
1057068
Faded_wind123楼主2024/5/24 14:16
#include <iostream>
#include <iomanip> 
using namespace std;

int main()
{
    long long s, a, b;
    cin >> s >> a >> b;
    
    long long right = s, left = 0;
    long long result = 0;

    while (left <= right)
    {
        long long mid = (right + left)/2;
        long long t0 = mid / b;
        long long s0 = t0 * a;
        long long t1 = (mid - s0) / (a + b);
        long long s1 = (t0 + t1) * a;
        long long s2 = mid + t1 * a;
        long long d1 = s - s1;
        long long d2 = s - s2;

        if (d1 / b > d2 / a)
        {
            left = mid + 1;
        }
        else if (d1 / b < d2 / a)
        {
            right = mid - 1;
        }
        else
        {
            result = mid;
            break;
        }
    }
    
    cout << fixed << setprecision(6) << result << endl;

    return 0;
}
2024/5/24 14:16
加载中...