#include #include #include #include #include #include #include #include #include #include #include using namespace std; int sum(vector v) { int sum = 0; for (int i = 0; i < 3; i++) { sum += v[i]; } return sum; } bool check(vector v) { bool ok = true; for (int i = 0; i < 3; i++) { if (v[i] < 0)ok = false; } return ok; } int main() { vector color(3); for (int i = 0; i < 3; i++)cin >> color[i]; int mn = *min_element(color.begin(), color.end()); for (int i = 0; i < 3; i++)color[i] -= mn; int cnt = mn; sort(color.begin(), color.end()); bool ok = true; while (ok) { if (sum(color) <= 2) { ok = false; break; } color[2] -= 2; color[0] += 1; ok = check(color); int mn = *min_element(color.begin(), color.end()); if (mn >= 1) { cnt += mn; for (int i = 0; i < 3; i++)color[i] -= mn; } sort(color.begin(), color.end()); cerr << color[0] << " " << color[1] << " " << color[2] << " " << cnt << endl; } cout << cnt << endl; }