1 条题解

  • 0
    @ 2026-10-6 9:59:16
    #include<bits/stdc++.h>
    #define int long long
    
    using namespace std;
    
    void solve()
    {
        int n,k;cin >> n >> k;
        vector<int> a(n+1);
        for(int i = 1;i <= n;i++) cin >> a[i];
        sort(a.begin()+1,a.end());
    
        int m = n / 2  + 1;
        int l = a[m],r = a[m] + k;
        
        auto check = [&](int mid) -> bool
        {
            int cnt = 0;
            for(int i = m;i <= n;i++)
            {
                if(mid >= a[i])
                {
                    cnt += mid - a[i];
                }
                else break;
            }
            return cnt <= k;
        };
    
        while(l < r)
        {
            int mid = l + r + 1 >> 1;
            if(check(mid)) l = mid;
            else r = mid - 1;
        }
    
        cout << l << endl;
    }
    
    signed main()
    {   
        ios::sync_with_stdio(false);
        cin.tie(0),cout.tie(0);
    
        int t = 1; 
        //cin >> t;
        while(t--) solve();
    }
    
    • 1

    信息

    ID
    525
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者