#include #include using namespace std; using i64 = long long; class range {private: struct I{int x;int operator*(){return x;}bool operator!=(I& lhs){return x c; int n; const i64 inf = 987654321987654321; i64 calc(i64 p) { i64 res = 0; for(int i : range(n)) { res += abs(p - c[i]); } return res; } int main(void) { i64 b; scanf("%lld%d", &b, &n); c.assign(n, 0); i64 summa = b; for(int i : range(n)) { scanf("%lld", &c[i]); summa += c[i]; } sort(c.begin(), c.end()); i64 lo = 0, hi = summa / n; while(hi - lo > 10) { i64 m1 = (lo + lo + hi) / 3, m2 = (lo + hi + hi) / 3; i64 r1 = calc(m1), r2 = calc(m2); if(r1 > r2) { lo = m1; } else { hi = m2; } } i64 res = inf; for(i64 x : range(lo, hi+1)) { res = min(res, calc(x)); } printf("%lld\n", res); return 0; }