n, q, s, t = gets.chomp.split.map(&:to_i)
a = []
(n + 1).times{a << gets.to_i}
b = []
1.upto(n){|i| b << a[i] - a[i - 1]}
plus = minus = 0
b.each{|x|
    plus += x if x >= 0
    minus += x if x < 0
}

q.times{
    l, r, delta = gets.chomp.split.map(&:to_i)
    if b[l-1] >= 0
        if b[l-1] + delta >= 0
            plus += delta
        else
            plus -= b[l-1]
            minus += b[l-1] + delta
        end
    else
        if b[l-1] + delta >= 0
            plus += b[l-1] + delta
            minus -= b[l-1]
        else
            minus += delta
        end
    end
    b[l-1] += delta

    if b[r]
        if b[r] >= 0
            if b[r] - delta >= 0
                plus -= delta
            else
                plus -= b[r]
                minus += b[r] - delta
            end
        else
            if b[r] - delta >= 0
                plus += b[r] - delta
                minus -= b[r]
            else
                minus -= delta
            end
        end
        b[r] -= delta
    end
    puts -plus * s - minus * t 
}
