时间限制:1秒
空间限制:65536K
沫璃邀请她的朋友参加周末的派对。沫璃买了3种颜色的气球,现在她要有这些气球来装饰餐桌,每个餐桌只用恰好3个气球装饰,要求3个气球的颜色不能完全一样,可以是2种或者3种颜色。沫璃想知道这些气球最多能装饰多少张餐桌。
输入描述:
第一行一个数T(T<=100),表示数据组数。
对于每组数据,第一行3个整数r,g,b,分别表示三种颜色的气球个数(0<=r, g, b<=2*10^9)
输出描述:
对于每组数据,输出一行,一个整数表示最多能装饰的餐桌数量。
输入例子1:
2
5 4 3
2 3 3
输出例子1:
4
2
看着难,但实际上这题很简单,跟那个网易的“环形,比两边之和小”的题一样,都是要有一个自己的分配方法,只要安照这个方法分配结果就是最优(虽然其他排列也有可能达到这种最优解,但是不用考虑)。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int i = 0; i < T; ++i){
long[] rgb = new long[3];
rgb[0] = sc.nextInt();
rgb[1] = sc.nextInt();
rgb[2] = sc.nextInt();
Arrays.sort(rgb);
if(rgb[2] / 2 > (rgb[0] + rgb[1])){
System.out.println(rgb[0] + rgb[1]);
}else{
System.out.println((rgb[0] + rgb[1] + rgb[2]) / 3);
}
}
}
}