7 条题解

  • 0
    @ 2024-11-3 15:43:54

    #include #include using namespace std; long long a[1000005]; long long n,m,ans; bool check(int x) { int sum = 0; for(int i = 1;i <= n;i++) { if(a[i] > x) sum += a[i] - x; } return sum >= m; } int main() { cin >> n >> m; for(int i = 1;i <= n;i++) { cin >> a[i]; } sort(a + 1,a + n + 1); long long l = 0,r = a[n]; while(l <= r) { int mid = (l + r) / 2; if(check(mid)) { ans = mid; l = mid + 1; } else r = mid - 1; } cout << ans << endl; return 0; }

    信息

    ID
    1280
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    506
    已通过
    131
    上传者