我都祈祷上帝了,还没过
by 洛谷tql @ 2020-03-25 18:32:42
@[qym2008](/user/270120) 哪题
by 洛谷tql @ 2020-03-25 18:32:59
xxs?您觉得您这头像和您年龄相匹配吗?
by Isenthalpic @ 2020-03-25 19:22:44
@[洛谷tql](/user/271956)
by Isenthalpic @ 2020-03-25 19:23:25
@[洛谷tql](/user/271956)
我跟你思路是一样的,但我貌似好像可能比你更简单亿些:
```cpp
#include <bits/stdc++.h> 万能头
using namespace std;
int a[55]; 模拟数组
int min(int a, int b) {
return a < b ? a : b;
}
int max(int a, int b) {
return a > b ? a : b;
}
手写STL函数,直接调用时间复杂度O(log n)
int main() {
int n, l, r, sum = 0;
scanf("%d", &n); 输入n
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]); 输入数组元素
sum += a[i]; 累加
}
scanf("%d %d", &l, &r); 输入上下界
if (sum < l * n || sum > r * n) {
printf("-1"); 判断无解情况
}
else {
int low = 0, up = 0; 统计超出和不足部分
for (int i = 0; i < n; i++) {
low += a[i] < l ? l - a[i] : 0;
up += a[i] > r ? a[i] - r : 0;
}
printf("%d", max(low, up)); 输出最大值,即答案
}
return 0;
}
```
by Lee666666 @ 2020-10-16 21:30:52
我也一样的,难过
by 小小代码人 @ 2021-01-25 17:52:52