1 /*
2 贪心:排序后,当a[3] > 2 * (a[1] + a[2]), 可以最多的2个,其他的都是1个,ggr,ggb, ggr。。。 ans = a[1] + a[2];
3 或先2个+1个,然后k个rgb。。。r = x + k; g = 2 * (x + z) + k; b = z + k; ans = (x + z) + k = (a[1] + a[2] + a[3]) / 3;
4 隔了一段时间有做到这题又不会了,看别人的解题报告水平果然没有提升,以后做题要独立思考,看别人的也要完全理解并记住!
5 */
6 #include <cstdio>
7 #include <algorithm>
8 #include <cstring>
9 #include <cmath>
10 using namespace std;
11
12 typedef long long ll;
13 const int MAXN = 1e3 + 10;
14 const int INF = 0x3f3f3f3f;
15
16 int main(void) //Codeforces Round #273 (Div. 2) C. Table Decorations
17 {
18 // freopen ("C.in", "r", stdin);
19
20 ll a[4];
21 while (scanf ("%I64d%I64d%I64d", &a[1], &a[2], &a[3]) == 3)
22 {
23 sort (a+1, a+1+3);
24 printf ("%I64d\n", min ((a[1] + a[2] + a[3]) / 3, a[1] + a[2]));
25 }
26
27 return 0;
28 }