#include using namespace std; int stones[3]; bool can(int x) { int rem = 0, need = 0; for(int i = 0; i < 3; i++) { if(stones[i] > x) { rem += (stones[i] - x) / 2; } else { need += x - stones[i]; } } if(rem >= need) return true; else return false; } int main(){ ios::sync_with_stdio(false); cin.tie(0); cin >> stones[0] >> stones[1] >> stones[2]; int left = 0, right = 10000000; while(right - left > 1) { int mid = left + (right - left) / 2; if(can(mid)) left = mid; else right = mid; } cout << (can(right) ? right : left) << endl; return 0; }