← Home
For problem statement at 0-999/200-299/230-239/232/problemA.txt this is a correct solution, but verifier at 0-999/200-299/230-239/232/verifierA.go ends with case 1 failed: expected 906416936 triangles

exit status 1 can you fix the verifier? ```go
package main

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

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Scan()
	k64, _ := strconv.ParseInt(scanner.Text(), 10, 64)
	k := int(k64)

	var m int
	for i := 100; i >= 3; i-- {
		c3 := i * (i - 1) * (i - 2) / 6
		if c3 <= k {
			m = i
			break
		}
	}

	c3 := m * (m - 1) * (m - 2) / 6
	e := k - c3

	tri := make(map[int]int)
	for d := 2; d <= m; d++ {
		val := d * (d - 1) / 2
		tri[val] = d
	}

	var list []int
	if e > 0 {
		list = findRep(e, tri)
	}

	n := m + len(list)

	adj := make([][]byte, n)
	for i := 0; i < n; i++ {
		adj[i] = make([]byte, n)
	}

	for i := 0; i < n; i++ {
		for j := 0; j < n; j++ {
			adj[i][j] = '0'
		}
	}

	for i := 0; i < m; i++ {
		for j := 0; j < m; j++ {
			if i != j {
				adj[i][j] = '1'
				adj[j][i] = '1'
			}
		}
	}

	for idx, val := range list {
		v := m + idx
		d := tri[val]
		for j := 0; j < d; j++ {
			adj[v][j] = '1'
			adj[j][v] = '1'
		}
	}

	fmt.Println(n)
	for i := 0; i < n; i++ {
		for j := 0; j < n; j++ {
			fmt.Print(string(adj[i][j]))
		}
		fmt.Println()
	}
}

func findRep(e int, tri map[int]int) []int {
	if _, ok := tri[e]; ok {
		return []int{e}
	}

	for val1 := range tri {
		if val1 > e {
			continue
		}
		val2 := e - val1
		if val2 >= val1 {
			if _, ok := tri[val2]; ok {
				return []int{val1, val2}
			}
		}
	}

	for val1 := range tri {
		if val1 > e {
			continue
		}
		for val2 := range tri {
			if val2 > val1 || val1+val2 > e {
				continue
			}
			val3 := e - val1 - val2
			if val3 >= val2 {
				if _, ok := tri[val3]; ok {
					return []int{val1, val2, val3}
				}
			}
		}
	}
	return []int{} // Should not reach here due to the theorem
}
```