/* -*- coding: utf-8 -*- * * 91.cc: No.91 赤、緑、青の石 - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ /* typedef */ /* global variables */ /* subroutines */ bool ok(int m, int c1, int c2) { // c1 <= c2 if (c1 >= m) return ((c1 - m) / 2 + (c2 - m) / 2 >= m); return (c2 - m) / 2 >= 2 * m - c1; } /* main */ int main() { int cs[3]; for (int i = 0; i < 3; i++) cin >> cs[i]; sort(cs, cs + 3); int c1 = cs[1] - cs[0], c2 = cs[2] - cs[0]; //printf("%d %d\n", c1, c2); int m0 = 0, m1 = c2; while (m0 + 1 < m1) { int m = (m0 + m1) / 2; if (ok(m, c1, c2)) m0 = m; else m1 = m; } printf("%d\n", m0 + cs[0]); return 0; }