C. Table Decorations

time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

You have r red, g green and b blue balloons. To decorate a single table for the banquet you need exactly three balloons. Three balloons attached to some table shouldn't have the same color. What maximum number t of tables can be decorated if we know number of balloons of each color?

Your task is to write a program that for given values rg and b will find the maximum number t of tables, that can be decorated in the required manner.

Input

The single line contains three integers rg and b (0 ≤ r, g, b ≤ 2·109) — the number of red, green and blue baloons respectively. The numbers are separated by exactly one space.

Output

Print a single integer t — the maximum number of tables that can be decorated in the required manner.

Sample test(s)
input
5 4 3
output
4
input
1 1 1
output
1
input
2 3 3
output
2
这题一开始以为是模拟题,模拟了很久发现非常麻烦,后来看了代码,发现只要两个算式就行了。1、如果较小的两个数的和的两倍比第三个数小,那么直接输出这两个数的和,否则输出三个数的平均数。
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
	__int64 a[10];
	__int64 n,m,i,j;
	while(scanf("%I64d%I64d%I64d",&a[0],&a[1],&a[2])!=EOF)
	{
		sort(a,a+3);
		if((a[0]+a[1])*2<=a[2]){
			printf("%I64d
",a[0]+a[1]);continue;
		}
		else printf("%I64d
",(a[1]+a[2]+a[0])/3);
	}
	return 0;
}
原文地址:https://www.cnblogs.com/herumw/p/9464833.html