1 条题解

  • 0
    @ 2024-1-29 16:15:14

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    
    #define int long long
    
    int n, m, k;
    
    signed main() {
        cin >> n >> m >> k;
        m -= n;
        int l = 0, r = m;
        while (l < r) {
            int mid = (l + r + 1) >> 1;
            int t1 = max((int)0, mid - (k - 1));
            int t2 = max((int)0, mid - (n - k));
            int s = (t1 + mid) * (mid - t1 + 1) / 2 + (t2 + mid) * (mid - t2 + 1) / 2 - mid;
            if (s > m)
                r = mid - 1;
            else
                l = mid;
        }
        cout << l + 1 << endl;
        return 0;
    }
    
    

    信息

    ID
    538
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    (无)
    递交数
    0
    已通过
    0
    上传者