P1873 增加数据点
查看原帖
P1873 增加数据点
397348
鬼王小川楼主2022/2/28 20:38
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

const int N = 1e6 + 10;
int a[N];
int n, M;

bool ok(int sta, int mid)
{
    ll sum = 0;
    for(int i = sta; i <= n; i ++)
        sum += (a[i] - mid);
    return sum >= M;
}

int main()
{
    cin >> n >> M;
    for(int i = 1; i <= n; i ++)
        cin >> a[i];
    sort(a + 1, a + 1 + n);
    int l = 1, r = 1e9;
    while(l < r)
    {
        int mid = l + (r - l + 1) / 2;
        if(ok(upper_bound(a + 1, a + 1 + n, mid) - a, mid))
            l = mid;
        else
            r = mid - 1;
    }
    cout << l << "\n";
    return 0;
}

该程序不能通过以下数据却通过了洛谷测试

4 3
1 1 1 1

答案应该为0却输出了1

2022/2/28 20:38
加载中...