#include #include #include #include #include #include #include #include #include #include #include #include #define vll vector #define vvvl vector #define vvl vector> #define VV(a, b, c, d) vector>(a, vector(b, c)) #define VVV(a, b, c, d) vector(a, vvl(b, vll (c, d))); #define re(c, b) for(ll c=0;c> a >> b >> c; ll ans = min({a, b, c}); a-=ans, b-=ans, c-=ans; ll l = 0, r = 10000000000; while(r-l>1){ //l ok r ng ll mid = (l+r)/2; ll stock = 0; if(a>mid) stock += (a-mid)/2; else stock -= (mid - a); if(b>mid) stock += (b-mid)/2; else stock -= (mid - b); if(c>mid) stock += (c-mid)/2; else stock -= (mid - c); if(stock>=0) l = mid; else r = mid; } std::cout << ans + l << '\n'; }