package main import "fmt" func min(a, b int) int { if a < b { return a } return b } func max(a, b int) int { if a > b { return a } return b } func main() { var X, Y, Z, ans int fmt.Scan(&X, &Y, &Z) p := min(X, Y) // 手持ちの赤と青で作れるだけ紫を作る Y -= p X -= p ans += p r := max(X, Y) // 残った赤と青の大きい方(片方は0) p = min(r, Z) // 残った玉と白で作れるだけ作る ans += p Z -= p if Z > 0 { // まだ白が残っている ans += Z / 2 } fmt.Println(ans) }