Найдите такой массив, что среднее значение этого и заданного массива вместе равно K
Даны два целых числа N , K и массив arr[] , состоящий из положительных целых чисел. Задача состоит в том, чтобы найти любой возможный массив размера N , такой что среднее значение arr[] и массива, который нужно найти вместе, равно K .
Примеры:
Input: arr[] = {1, 5, 6}, N = 4, K = 3
Output: {1, 2, 3, 3}
Explanation: Mean of {1, 5, 6} and {1, 2, 3, 3} together is the following:
(1 + 5 + 6 + 1 + 2 + 3 + 3) / (3+4) = 3.
Therefore {1, 2, 3, 3} is possible array to make the mean = 3.Input: arr[] = {7, 8, 6}, N = 2, K = 3
Output: Not Possible
Подход: Эта проблема может быть решена с помощью простых понятий системы счисления. Предположим, что sumArr будет суммой массива new_arr[] и M будет размером new_arr[] . Тогда в соответствии с усредненной концепцией уравнение можно составить в виде:
(sumArr + X) / (N+M) = K, where X is sum of required array.
X = K * (N + M) – sumArr.
Следовательно, сумма требуемого массива должна быть равна X , чтобы среднее значение равнялось K. Если X меньше N , то нет возможности сформировать массив.
Самый простой способ сформировать требуемый массив
1, 1, 1, …(M-1 times), X-(M-1)
.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(N)
Вспомогательное пространство: O(N)