← Home
For problem statement at 1000-1999/1400-1499/1470-1479/1479/problemC.txt this is a correct solution, but verifier at 1000-1999/1400-1499/1470-1479/1479/verifierC.go ends with All 100 tests passed can you fix the verifier? package main

import (
	"fmt"
)

type Edge struct {
	u, v, w int
}

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

	edges := []Edge{}

	currentL := L
	remaining := R - L + 1
	n := 0

	if currentL == 1 {
		currentL = 2
		remaining--
	}

	var maxM int
	if remaining == 0 {
		maxM = -1
	} else {
		for m := 20; m >= 0; m-- {
			if (remaining>>m)&1 == 1 {
				maxM = m
				break
			}
		}
	}

	k := maxM + 2
	if k < 1 {
		k = 1
	}
	n = k + 1

	if L == 1 {
		edges = append(edges, Edge{1, n, 1})
	}

	for i := 2; i <= k; i++ {
		edges = append(edges, Edge{1, i, 1})
		for j := 2; j < i; j++ {
			edges = append(edges, Edge{j, i, 1 << (j - 2)})
		}
	}

	for m := maxM; m >= 0; m-- {
		if (remaining>>m)&1 == 1 {
			w := currentL - 1
			edges = append(edges, Edge{m + 2, n, w})
			currentL += 1 << m
		}
	}

	fmt.Println("YES")
	fmt.Printf("%d %d\n", n, len(edges))
	for _, e := range edges {
		fmt.Printf("%d %d %d\n", e.u, e.v, e.w)
	}
}