← Home
For problem statement at 1000-1999/1600-1699/1680-1689/1687/problemA.txt this is a correct solution, but verifier at 1000-1999/1600-1699/1680-1689/1687/verifierA.go ends with All tests passed can you fix the verifier? package main

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

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Buffer(make([]byte, 1024*1024), 1024*1024*10)
	scanner.Split(bufio.ScanWords)

	if !scanner.Scan() {
		return
	}
	t, _ := strconv.Atoi(scanner.Text())
	for i := 0; i < t; i++ {
		scanner.Scan()
		n, _ := strconv.Atoi(scanner.Text())
		scanner.Scan()
		k, _ := strconv.ParseInt(scanner.Text(), 10, 64)

		a := make([]int64, n)
		for j := 0; j < n; j++ {
			scanner.Scan()
			a[j], _ = strconv.ParseInt(scanner.Text(), 10, 64)
		}

		if k < int64(n) {
			var currentSum int64 = 0
			for j := 0; int64(j) < k; j++ {
				currentSum += a[j]
			}
			maxSum := currentSum
			for j := int64(k); j < int64(n); j++ {
				currentSum += a[j] - a[j-int64(k)]
				if currentSum > maxSum {
					maxSum = currentSum
				}
			}
			ans := maxSum + k*(k-1)/2
			fmt.Println(ans)
		} else {
			var sum int64 = 0
			for j := 0; j < n; j++ {
				sum += a[j]
			}
			ans := sum + int64(n)*k - int64(n)*(int64(n)+1)/2
			fmt.Println(ans)
		}
	}
}