# 官方题解|欢乐赛#39 T4
2025-01-22 17:09:04
发布于:浙江
18阅读
0回复
0点赞
T4
可以先确定大小,假设从大到小分别为 ,那么我们可以对 同时进行操作 ,直到把 加到和 一样大。然后对 不断的进行操作 ,直到 ,如果最后 比 和 都大 ,那么最后还需要对 都加上 。
#include <bits/stdc++.h>
using namespace std;
const int N = 200010;
int a[N], n, m, k;
void solve(){
int a, b, c;
//先把啊a, b, c从小到大处理好
vector<int>q;
for(int i = 1; i <= 3; i ++ ){
int x;
cin >> x;
q.push_back(x);
}
sort(q.begin(), q.end());
a = q[0], b = q[1], c = q[2];
//把b和c变的一样大
int cha = c - b;
int ans = cha;
a += cha; b += cha;
//把a不断+2,知道a>=b
int shang = (c - a) / 2;
a += shang * 2;
ans += shang;
if(a != c) ans += 2; //这是a最后等于c+1的情况。
cout << ans << endl;
}
int main(){
int tt = 1;
cin >> tt;
while(tt -- ){
solve();
}
return 0;
}
这里空空如也
有帮助,赞一个