// No.198 キャンディー・ボックス2 // https://yukicoder.me/problems/no/198 // #include #include #include #include #include using namespace std; long long int solve(unsigned int B, unsigned int N, vector& candies); long long calc_cost(long long n, vector& candies); int main() { std::cin.tie(nullptr); std::ios::sync_with_stdio(false); unsigned int B, N; cin >> B >> N; vector candies(N); for (int i = 0; i < N; ++i) cin >> candies[i]; long long ans = solve(B, N, candies); cout << ans << endl; } long long int solve(unsigned int B, unsigned int N, vector& candies) { sort(candies.begin(), candies.end()); long long median; if (N % 2 == 1) median = candies[N/2]; else median = (candies[(N-1)/2] + candies[N/2]) / 2; long long max_avg = B; for (auto c: candies) max_avg += c; max_avg /= N; median = min(median, max_avg); long long ans = calc_cost(median, candies); return ans; } long long calc_cost(long long n, vector& candies) { long long ans = 0; for (auto s: candies) { ans += abs(s - n); } return ans; }