// No.2110 012 Matching package main import ( "bufio" "fmt" "os" "strconv" "strings" ) func min(a, b int) int { if a <= b { return a } else { return b } } func main() { sc := bufio.NewScanner(os.Stdin) sc.Scan() T, _ := strconv.Atoi(sc.Text()) wr := bufio.NewWriter(os.Stdout) defer wr.Flush() for i := 0; i < T; i++ { sc.Scan() ss := strings.Split(sc.Text(), " ") A, _ := strconv.Atoi(ss[0]) B, _ := strconv.Atoi(ss[1]) C, _ := strconv.Atoi(ss[2]) point := 0 p02 := min(A, C) point += 2 * p02 A -= p02 C -= p02 p11 := B / 2 point += 2 * p11 B -= 2 * p11 p22 := C / 2 point += 1 * p22 p01 := min(A, B) point += 1 * p01 fmt.Fprintln(wr, point) } }