Задача №115405. Арифметическое упражнение

Олег и Даша участвовали в командной олимпиаде, но, к сожалению, у них не получилось решить ни одной задачи. Олег сразу понял, что их команда недостаточно тренируется. Тогда их общий друг подсказал им интересное упражнение. Упражнение было совсем не трудным, для решения необходимо было знать лишь правила сложения и вычитания целых чисел.

Вам дается массив \(a\) длины \(n\), в котором изначально все значения равны нулю. Также вам передано \(m\) чисел \(x_1,\ x_2,\ \ldots\ x_m\). Далее вы последовательно для каждого \(i\) от \(1\) до \(m\) выбираете некоторый индекс \(j_i\) и делаете изменение \(a_{j_i} = x_i - a_{j_i}\).

Помогите Олегу с Дашей узнать, какую максимальную сумму элементов массива \(a\) можно получить после всех изменений, если делать выбор оптимально.

Входные данные

Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит единственное целое число \(t\) (\(1 \le t \le 10\,000\)) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит два целых числа \(n\) и \(m\) (\(1 \le n, m \le 300\,000\)) — длину массива \(a\) и количество значений \(x_i\) соответственно.

Вторая строка каждого набора входных данных содержит \(m\) целых чисел \(x_1\), \(x_2\), \(\ldots\), \(x_m\) (\(-10^9 \le x_i \le 10^9\)) — описание значений.

Обозначим за \(N\) сумму \(n\) по всем наборам входных данных, а за \(M\) сумму \(m\) по всем наборам входных данных.

Гарантируется, что \(N\) и \(M\) не превосходят \(300\,000\).

Выходные данные

Для каждого набора входных данных в отдельной строке выведите единственное число — максимальную сумму массива \(a\), которую можно получить.

Примечание

В первом наборе входных данных все операции применяются к первому элементу массива \(a\), он последовательно равен \(1 - 0 = 1\), \(2 - 1 = 1\), \(3 - 1 = 2\), \(4 - 2 = 2\), поэтому ответ равен \(2\).

Во втором наборе входных данных можно выполнить следующую последовательность изменений:

  1. Применим изменение к первому элементу \(a_1 = 10 - a_1 = 10 - 0 = 10\), \(a = [10, 0]\).
  2. Применим изменение к первому элементу \(a_1 = 3 - a_1 = 3 - 10 = -7\), \(a = [-7, 0]\).
  3. Применим изменение к первому элементу \(a_1 = 7 - a_1 = 7 - (-7) = 14\), \(a = [14, 0]\).
  4. Применим изменение к первому элементу \(a_1 = 1 - a_1 = 1 - 14 = -13\), \(a = [-13, 0]\).
  5. Применим изменение ко второму элементу \(a_2 = 4 - a_2 = 4 - 0 = 4\), \(a = [-13, 4]\).
  6. Применим изменение к первому элементу \(a_1 = 6 - a_1 = 6 - (-13) = 19\), \(a = [19, 4]\).
  7. Применим изменение ко второму элементу \(a_2 = 3 - a_2 = 3 - 4 = -1\), \(a = [19, -1]\).

В конце имеем \(a = [19, -1]\), поэтому итоговая сумма равна \(18\).

Можно показать, что добиться лучшего ответа нельзя.

Система оценки

Тесты к этой задаче состоят из десяти групп. Баллы за каждую группу ставятся только при прохождении всех тестов группы и всех тестов некоторых из предыдущих групп. Обратите внимание, что прохождение тестов из условия не требуется для некоторых групп. Offline-проверка означает, что результаты тестирования вашего решения на данной группе станут доступны только после окончания соревнования.

Доп. ограничения
Группа Баллы \(n, N\) \(m, M\) \(x_i\) Необх. группы Комментарий
0 0 Тесты из условия
1 4 \(0 \le x_i\) Все \(x_i\) равны
2 8 \(n=2\) \(M \le 30\) \(m \le 18\)
3 11 \(n=2\) \(M \le 50\) \(-10 \le x_i \le 10\)
4 9 \(n=2\) \(M \le 400\) \(-400 \le x_i \le 400\) 3
5 8 \(N \le 30\) \(n \le 18\) \(M \le 30\) \(m \le 18\) 0
6 10 \(N \le 2000\) \(M \le 2000\) \(0 \le x_i\)
7 12 \(N \le 2000\) \(M \le 2000\) 0, 2 – 6
8 10 \(0 \le x_i\) 1 Среди \(x_i\) не более двух различных значений
9 17 \(0 \le x_i\) 1, 6, 8
10 11 0 – 9 Offline-проверка.
Примеры
Входные данные
4
1 4
1 2 3 4
2 7
10 3 7 1 4 6 3
4 10
103 354 1 227 179 189 142 201 165 140
5 3
-10 11 -4
Выходные данные
2
18
1085
17
Сдать: для сдачи задач необходимо войти в систему