c++
class Solution {
public:
int maximumScore(int a, int b, int c) {
if (a > c) swap(a, c);
if (a > b) swap(a, b);
if (b > c) swap(b, c);
int ans = 0;
int cnt1 = min(a, c - b);
a -= cnt1, c -= cnt1, ans += cnt1;
if (a) {
if (a % 2) a -= 1;
b -= a / 2;
c -= a / 2;
ans += a;
}
ans += b;
return ans;
}
};
js
var maximumScore = function(a, b, c) {
if (a > c) [a, c] = [c, a];
if (a > b) [a, b] = [b, a];
if (b > c) [b, c] = [c, b];
var cnt1 = Math.min(a, c - b);
var ans = 0;
ans += cnt1, a -= cnt1, c -= cnt1;
if (a) {
if (a % 2) a -= 1;
ans += a;
b -= a / 2;
c -= a / 2;
}
ans += b;
return ans;
};