← Home
package main

import (
	"bufio"
	"bytes"
	"io"
	"os"
	"sort"
	"strconv"
)

type FastScanner struct {
	data []byte
	idx  int
	n    int
}

func NewFastScanner() *FastScanner {
	data, _ := io.ReadAll(bufio.NewReaderSize(os.Stdin, 1<<20))
	return &FastScanner{data: data, n: len(data)}
}

func (fs *FastScanner) NextInt64() int64 {
	for fs.idx < fs.n {
		c := fs.data[fs.idx]
		if c == '-' || (c >= '0' && c <= '9') {
			break
		}
		fs.idx++
	}
	sign := int64(1)
	if fs.data[fs.idx] == '-' {
		sign = -1
		fs.idx++
	}
	var val int64
	for fs.idx < fs.n {
		c := fs.data[fs.idx]
		if c < '0' || c > '9' {
			break
		}
		val = val*10 + int64(c-'0')
		fs.idx++
	}
	return val * sign
}

func abs64(x int64) int64 {
	if x < 0 {
		return -x
	}
	return x
}

func best(vals []int64, x int64) int64 {
	i := sort.Search(len(vals), func(i int) bool { return vals[i] >= x })
	ans := int64(1<<63 - 1)
	if i < len(vals) {
		ans = abs64(vals[i] - x)
	}
	if i > 0 {
		d := abs64(vals[i-1] - x)
		if d < ans {
			ans = d
		}
	}
	return ans
}

func main() {
	fs := NewFastScanner()

	n := int(fs.NextInt64())
	m := int(fs.NextInt64())
	q := int(fs.NextInt64())

	var aAlt int64
	for i := 1; i <= n; i++ {
		v := fs.NextInt64()
		if i%2 == 1 {
			aAlt += v
		} else {
			aAlt -= v
		}
	}

	pref := make([]int64, m+1)
	for i := 1; i <= m; i++ {
		v := fs.NextInt64()
		if i%2 == 1 {
			pref[i] = pref[i-1] + v
		} else {
			pref[i] = pref[i-1] - v
		}
	}

	cnt := m - n + 1
	vals := make([]int64, cnt)
	for s := 1; s <= cnt; s++ {
		v := pref[s+n-1] - pref[s-1]
		if s%2 == 0 {
			v = -v
		}
		vals[s-1] = v
	}
	sort.Slice(vals, func(i, j int) bool { return vals[i] < vals[j] })

	var out bytes.Buffer
	out.WriteString(strconv.FormatInt(best(vals, aAlt), 10))
	out.WriteByte('\n')

	for ; q > 0; q-- {
		l := int(fs.NextInt64())
		r := int(fs.NextInt64())
		x := fs.NextInt64()

		if (r-l+1)%2 == 1 {
			if l%2 == 1 {
				aAlt += x
			} else {
				aAlt -= x
			}
		}

		out.WriteString(strconv.FormatInt(best(vals, aAlt), 10))
		out.WriteByte('\n')
	}

	os.Stdout.Write(out.Bytes())
}