HXACA:二分答案即可,check方法很简单,每个元素比预期少总和的和多出来的的综合是不是两倍关系即可
#include<bits/stdc++.h>
using namespace std;
int main(){
long long a[4];
long long sum = 0;
for(int i=0;i<4;i++){
scanf("%lld",&a[i]);
sum += a[i];
}
sort(a,a+4);
long long l = 1;
long long r = sum / 4;
long long ans = -1;
while(l<=r){
long long mid = (l+r) / 2;
long long need = 0;
long long left = 0;
for(int i=0;i<4;i++){
if(a[i] < mid){
need += (mid - a[i]);
}else if(a[i]>mid){
left += (a[i] - mid);
}
}
if(need * 2<=left){
ans = max(ans,mid);
l = mid+1;
}else{
r = mid-1;
}
}
cout<<ans * 4<<endl;
}
投递广联达等公司10个岗位 >
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
关注他的用户也关注了: