← Home
For problem statement at 0-999/900-999/910-919/911/problemD.txt this is a correct solution, but verifier at 0-999/900-999/910-919/911/verifierD.go ends with all tests passed can you fix the verifier? package main

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

type FastReader struct {
	r   io.Reader
	buf []byte
	idx int
	n   int
}

func NewFastReader(r io.Reader) *FastReader {
	return &FastReader{r: r, buf: make([]byte, 1<<16)}
}

func (fr *FastReader) refill() {
	n, _ := fr.r.Read(fr.buf)
	fr.n = n
	fr.idx = 0
}

func (fr *FastReader) nextByte() byte {
	if fr.idx >= fr.n {
		fr.refill()
		if fr.n == 0 {
			return 0
		}
	}
	b := fr.buf[fr.idx]
	fr.idx++
	return b
}

func (fr *FastReader) NextInt() int {
	sign := 1
	b := fr.nextByte()
	for (b < '0' || b > '9') && b != '-' {
		if b == 0 {
			return 0
		}
		b = fr.nextByte()
	}
	if b == '-' {
		sign = -1
		b = fr.nextByte()
	}
	val := 0
	for b >= '0' && b <= '9' {
		val = val*10 + int(b-'0')
		b = fr.nextByte()
	}
	return val * sign
}

func main() {
	in := NewFastReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	n := in.NextInt()
	a := make([]int, n)
	for i := 0; i < n; i++ {
		a[i] = in.NextInt()
	}

	parity := 0
	for i := 0; i < n; i++ {
		for j := i + 1; j < n; j++ {
			if a[i] > a[j] {
				parity ^= 1
			}
		}
	}

	m := in.NextInt()
	for i := 0; i < m; i++ {
		l := in.NextInt()
		r := in.NextInt()
		k := r - l + 1
		pairs := k * (k - 1) / 2
		if pairs%2 == 1 {
			parity ^= 1
		}
		if parity == 1 {
			fmt.Fprintln(out, "odd")
		} else {
			fmt.Fprintln(out, "even")
		}
	}
}