← Home
For problem statement at 0-999/800-899/870-879/875/problemB.txt this is a correct solution, but verifier at 0-999/800-899/870-879/875/verifierB.go ends with All 100 tests passed can you fix the verifier? package main

import (
	"bytes"
	"io"
	"os"
	"strconv"
)

func main() {
	data, _ := io.ReadAll(os.Stdin)
	idx := 0
	nextInt := func() int {
		for idx < len(data) && (data[idx] < '0' || data[idx] > '9') {
			idx++
		}
		val := 0
		for idx < len(data) && data[idx] >= '0' && data[idx] <= '9' {
			val = val*10 + int(data[idx]-'0')
			idx++
		}
		return val
	}

	n := nextInt()
	p := make([]int, n+1)
	for i := 1; i <= n; i++ {
		p[i] = nextInt()
	}

	mx := make([]int, n+2)
	for i := n; i >= 1; i-- {
		if p[i] > mx[i+1] {
			mx[i] = p[i]
		} else {
			mx[i] = mx[i+1]
		}
	}

	var out bytes.Buffer
	for k := 0; k <= n; k++ {
		if k > 0 {
			out.WriteByte(' ')
		}
		ans := 1 + k + mx[k+1] - n
		out.WriteString(strconv.Itoa(ans))
	}
	out.WriteByte('\n')
	os.Stdout.Write(out.Bytes())
}