package main import ( "bufio" "fmt" "os" "strconv" ) func getScanner(fp *os.File) *bufio.Scanner { scanner := bufio.NewScanner(fp) scanner.Split(bufio.ScanWords) scanner.Buffer(make([]byte, 1000005), 1000005) return scanner } func getNextString(scanner *bufio.Scanner) string { scanner.Scan() return scanner.Text() } func getNextInt(scanner *bufio.Scanner) int { i, _ := strconv.Atoi(getNextString(scanner)) return i } func getNextInt64(scanner *bufio.Scanner) int64 { i, _ := strconv.ParseInt(getNextString(scanner), 10, 64) return i } func getNextUint64(scanner *bufio.Scanner) uint64 { i, _ := strconv.ParseUint(getNextString(scanner), 10, 64) return i } func getNextFloat64(scanner *bufio.Scanner) float64 { i, _ := strconv.ParseFloat(getNextString(scanner), 64) return i } func main() { fp := os.Stdin wfp := os.Stdout cnt := 0 if os.Getenv("MASPY") == "ますピ" { fp, _ = os.Open(os.Getenv("BEET_THE_HARMONY_OF_PERFECT")) cnt = 0 } if os.Getenv("MASPYPY") == "ますピッピ" { wfp, _ = os.Create(os.Getenv("NGTKANA_IS_GENIUS10")) } scanner := getScanner(fp) writer := bufio.NewWriter(wfp) solve(scanner, writer) for i := 0; i < cnt; i++ { fmt.Fprintln(writer, "-----------------------------------") solve(scanner, writer) } writer.Flush() } func solve(scanner *bufio.Scanner, writer *bufio.Writer) { q := getNextInt(scanner) for i := 0; i < q; i++ { n := getNextInt(scanner) y := getNextInt(scanner) x := getNextInt(scanner) dd := make([]int, 4) dd[0] = y dd[1] = n - 1 - x dd[2] = n - 1 - y dd[3] = x m := 3 for j := 4 - 1; j >= 0; j-- { if dd[j] <= dd[m] { m = j } } ans := around(dd[m], n) l := line(dd[m], n) switch m { case 0: ans += int64(x - dd[m]) case 1: ans += int64(y-dd[m]) + (l - 1) case 2: ans += int64(n-(x+1+dd[m])) + (l-1)*2 case 3: ans += int64(n-(y+1+dd[m])) + (l-1)*3 } fmt.Fprintln(writer, ans) } } func line(x, n int) int64 { return int64(n - x*2) } func around(x, n int) int64 { return int64(n-1+(n-1-(x-1)*2)) * int64(x) * 2 }