题解 | AOE还是单体?
AOE还是单体?
https://www.nowcoder.com/practice/84dec7e96e3d4f75808b47e1b8b0280c
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n, x;
int calc(const vector<int> &arr, int m)
{
int res = m * x;
for (int i = 1; i <= n; ++i)
{
if (arr[i] > m)
{
res += arr[i] - m;
}
}
return res;
}
signed main()
{
cin >> n >> x;
vector<int> arr(n + 1, 0);
int max_num = 0;
for (int i = 1; i <= n; ++i)
{
cin >> arr[i];
max_num = max(max_num, arr[i]);
}
int l = 0, r = max_num;
int ans = LLONG_MAX;
while (l <= r)
{
int mid = (l + r) / 2;
int val_mid = calc(arr, mid);
ans = min(ans, val_mid);
int val_next = calc(arr, mid + 1);
if (val_mid < val_next)
{
r = mid - 1;
}
else
{
l = mid + 1;
}
}
cout << ans << endl;
return 0;
}
OPPO公司福利 1269人发布