← Home
package main

import (
	"bufio"
	"fmt"
	"os"
	"strings"
)

func main() {
	in := bufio.NewReaderSize(os.Stdin, 1<<20)
	out := bufio.NewWriterSize(os.Stdout, 1<<20)
	defer out.Flush()

	var t int
	fmt.Fscan(in, &t)
	var sb strings.Builder

	for ; t > 0; t-- {
		var n, a, b int
		var s string
		fmt.Fscan(in, &n, &a, &b)
		fmt.Fscan(in, &s)

		ans := n * a
		if b >= 0 {
			ans += n * b
		} else {
			runs := 1
			for i := 1; i < n; i++ {
				if s[i] != s[i-1] {
					runs++
				}
			}
			ans += (runs/2 + 1) * b
		}

		sb.WriteString(fmt.Sprintf("%d\n", ans))
	}

	fmt.Fprint(out, sb.String())
}