# File: optimal_game_value.py
def max_abs_sum_gain(a1, b1, a2, b2):
# Computes the maximum possible gain in value from Bahamin's optimal swap
orig = abs(a1 - b1) + abs(a2 - b2)
values = [a1, b1, a2, b2]
max_new = 0
for x1 in values:
for x2 in values:
if x1 == x2: continue
remaining = values[:]
remaining.remove(x1)
remaining.remove(x2)
y1, y2 = remaining
new_v = abs(x1 - y1) + abs(x2 - y2)
max_new = max(max_new, new_v)
return max_new - orig
def solve():
import sys
input = sys.stdin.read
data = input().split()
idx = 0
t = int(data[idx]); idx += 1
results = []
for _ in range(t):
n = int(data[idx]); idx += 1
k = int(data[idx]); idx += 1
a = list(map(int, data[idx:idx+n])); idx += n
b = list(map(int, data[idx:idx+n])); idx += n
initial_v = sum(abs(a[i] - b[i]) for i in range(n))
gains = []
# Try only i and i+1 to limit complexity (O(n))
for i in range(n - 1):
gain = max_abs_sum_gain(a[i], b[i], a[i+1], b[i+1])
if gain > 0:
gains.append(gain)
# Sort and apply top k gains
gains.sort(reverse=True)
final_v = initial_v + sum(gains[:k])
results.append(str(final_v))
print("\n".join(results))
# Uncomment below if running directly:
# if __name__ == "__main__":
# solve()
IyBGaWxlOiBvcHRpbWFsX2dhbWVfdmFsdWUucHkKCmRlZiBtYXhfYWJzX3N1bV9nYWluKGExLCBiMSwgYTIsIGIyKToKICAgICMgQ29tcHV0ZXMgdGhlIG1heGltdW0gcG9zc2libGUgZ2FpbiBpbiB2YWx1ZSBmcm9tIEJhaGFtaW4ncyBvcHRpbWFsIHN3YXAKICAgIG9yaWcgPSBhYnMoYTEgLSBiMSkgKyBhYnMoYTIgLSBiMikKICAgIHZhbHVlcyA9IFthMSwgYjEsIGEyLCBiMl0KICAgIG1heF9uZXcgPSAwCiAgICBmb3IgeDEgaW4gdmFsdWVzOgogICAgICAgIGZvciB4MiBpbiB2YWx1ZXM6CiAgICAgICAgICAgIGlmIHgxID09IHgyOiBjb250aW51ZQogICAgICAgICAgICByZW1haW5pbmcgPSB2YWx1ZXNbOl0KICAgICAgICAgICAgcmVtYWluaW5nLnJlbW92ZSh4MSkKICAgICAgICAgICAgcmVtYWluaW5nLnJlbW92ZSh4MikKICAgICAgICAgICAgeTEsIHkyID0gcmVtYWluaW5nCiAgICAgICAgICAgIG5ld192ID0gYWJzKHgxIC0geTEpICsgYWJzKHgyIC0geTIpCiAgICAgICAgICAgIG1heF9uZXcgPSBtYXgobWF4X25ldywgbmV3X3YpCiAgICByZXR1cm4gbWF4X25ldyAtIG9yaWcKCmRlZiBzb2x2ZSgpOgogICAgaW1wb3J0IHN5cwogICAgaW5wdXQgPSBzeXMuc3RkaW4ucmVhZAogICAgZGF0YSA9IGlucHV0KCkuc3BsaXQoKQoKICAgIGlkeCA9IDAKICAgIHQgPSBpbnQoZGF0YVtpZHhdKTsgaWR4ICs9IDEKICAgIHJlc3VsdHMgPSBbXQogICAgZm9yIF8gaW4gcmFuZ2UodCk6CiAgICAgICAgbiA9IGludChkYXRhW2lkeF0pOyBpZHggKz0gMQogICAgICAgIGsgPSBpbnQoZGF0YVtpZHhdKTsgaWR4ICs9IDEKICAgICAgICBhID0gbGlzdChtYXAoaW50LCBkYXRhW2lkeDppZHgrbl0pKTsgaWR4ICs9IG4KICAgICAgICBiID0gbGlzdChtYXAoaW50LCBkYXRhW2lkeDppZHgrbl0pKTsgaWR4ICs9IG4KCiAgICAgICAgaW5pdGlhbF92ID0gc3VtKGFicyhhW2ldIC0gYltpXSkgZm9yIGkgaW4gcmFuZ2UobikpCiAgICAgICAgZ2FpbnMgPSBbXQoKICAgICAgICAjIFRyeSBvbmx5IGkgYW5kIGkrMSB0byBsaW1pdCBjb21wbGV4aXR5IChPKG4pKQogICAgICAgIGZvciBpIGluIHJhbmdlKG4gLSAxKToKICAgICAgICAgICAgZ2FpbiA9IG1heF9hYnNfc3VtX2dhaW4oYVtpXSwgYltpXSwgYVtpKzFdLCBiW2krMV0pCiAgICAgICAgICAgIGlmIGdhaW4gPiAwOgogICAgICAgICAgICAgICAgZ2FpbnMuYXBwZW5kKGdhaW4pCgogICAgICAgICMgU29ydCBhbmQgYXBwbHkgdG9wIGsgZ2FpbnMKICAgICAgICBnYWlucy5zb3J0KHJldmVyc2U9VHJ1ZSkKICAgICAgICBmaW5hbF92ID0gaW5pdGlhbF92ICsgc3VtKGdhaW5zWzprXSkKICAgICAgICByZXN1bHRzLmFwcGVuZChzdHIoZmluYWxfdikpCgogICAgcHJpbnQoIlxuIi5qb2luKHJlc3VsdHMpKQoKIyBVbmNvbW1lbnQgYmVsb3cgaWYgcnVubmluZyBkaXJlY3RseToKIyBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgojICAgICBzb2x2ZSgp
NQoyIDEKMSA3CjMgNQozIDIKMSA1IDMKNiAyIDQKNSA0CjEgMTYgMTAgMTAgMTYKMyAyIDIgMTUgMTUKNCAxCjIzIDEgMTggNAoxOSAyIDEwIDMKMTAgMTAKNCAzIDIgMTAwIDQgMSAyIDQgNSA1CjEgMjAwIDQgNSA2IDEgMTAgMiAzIDQK
5
2 1
1 7
3 5
3 2
1 5 3
6 2 4
5 4
1 16 10 10 16
3 2 2 15 15
4 1
23 1 18 4
19 2 10 3
10 10
4 3 2 100 4 1 2 4 5 5
1 200 4 5 6 1 10 2 3 4