← Home
For problem statement at 1000-1999/1600-1699/1660-1669/1667/problemC.txt this is a correct solution, but verifier at 1000-1999/1600-1699/1660-1669/1667/verifierC.go ends with wrong answer on test 1
input:27
expected:18
1 9
2 8
3 7
4 6
5 5
6 4
7 3
8 2
9 1
10 17
11 16
12 15
13 14
14 13
15 12
16 11
17 10
27 27
found:18
1 9
9 1
2 8
8 2
3 7
7 3
4 6
6 4
10 17
17 10
11 16
16 11
12 15
15 12
13 14
14 13
5 5
18 18


exit status 1 can you fix the verifier? package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	var n int
	if _, err := fmt.Scan(&n); err != nil {
		return
	}

	if n == 1 {
		fmt.Println(1)
		fmt.Println("1 1")
		return
	}

	k := (2*n + 1) / 3
	m := n - k

	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	fmt.Fprintln(out, k)

	if m > 0 {
		for i := 1; i <= m/2; i++ {
			a := i
			b := m - i + 1
			fmt.Fprintf(out, "%d %d\n", a, b)
			fmt.Fprintf(out, "%d %d\n", b, a)
		}

		for i := 1; i <= (m-1)/2; i++ {
			a := m + i
			b := 2*m - i
			fmt.Fprintf(out, "%d %d\n", a, b)
			fmt.Fprintf(out, "%d %d\n", b, a)
		}

		var rem int
		if m%2 == 0 {
			rem = m + m/2
		} else {
			rem = (m + 1) / 2
		}
		fmt.Fprintf(out, "%d %d\n", rem, rem)
	}

	for x := 2*m; x <= k; x++ {
		fmt.Fprintf(out, "%d %d\n", x, x)
	}
}