fork(1) download
  1. from itertools import permutations
  2.  
  3. def max_abs_sum_gain(a1, b1, a2, b2):
  4. orig = abs(a1 - b1) + abs(a2 - b2)
  5. values = [a1, b1, a2, b2]
  6. max_new = 0
  7. for perm in permutations(values):
  8. a_i, a_j, b_i, b_j = perm
  9. new_v = abs(a_i - b_i) + abs(a_j - b_j)
  10. max_new = max(max_new, new_v)
  11. return max_new - orig
  12.  
  13. def solve():
  14. import sys
  15. input = sys.stdin.read
  16. data = input().split()
  17.  
  18. idx = 0
  19. t = int(data[idx])
  20. idx += 1
  21. results = []
  22. for _ in range(t):
  23. n = int(data[idx])
  24. idx += 1
  25. k = int(data[idx])
  26. idx += 1
  27. a = list(map(int, data[idx:idx + n]))
  28. idx += n
  29. b = list(map(int, data[idx:idx + n]))
  30. idx += n
  31.  
  32. initial_v = sum(abs(a[i] - b[i]) for i in range(n))
  33. gains = []
  34.  
  35. for i in range(n):
  36. for j in range(i + 1, n):
  37. gain = max_abs_sum_gain(a[i], b[i], a[j], b[j])
  38. if gain > 0:
  39. gains.append(gain)
  40.  
  41. gains.sort(reverse=True)
  42. final_v = initial_v - sum(gains[:k])
  43. results.append(str(final_v))
  44.  
  45. print("\n".join(results))
  46.  
  47. solve()
  48.  
Success #stdin #stdout 0.09s 13980KB
stdin
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
stdout
0
9
-18
-20
274