package main

import (
    "fmt"
)
/* 如果k大于0
    1、当A选了一段数,左右两边都是连续的正数
    2、B则会选择相邻的所有负数、
    3、既然B必然会选相邻负数,那么不如A自己选了这段负数还能再选一段正数,然后回到状态1
    4、结果就是A选了全部的数,B选啥都不重要了,只要A不全选,B的选择就会使得总值降低
    这种题目考试出现的话,短时间大部分人很难推送这个结论,不刷基本就挂,非常有恶意的题目
*/
func main() {
    t := 0
    fmt.Scan(&t)
    for i := 0; i < t; i++ {
        var n int64
        var k int64
        fmt.Scan(&n, &k)
        sum := int64(0)
        for i := int64(0); i < n; i++ {
            var v int64;
            fmt.Scan(&v)
            sum += v*k
        }
        fmt.Printf("%d\n", sum);
    }
}