// No.615 集合に分けよう // https://yukicoder.me/problems/no/615 // #include #include #include #include using namespace std; long long int solve(unsigned int N, unsigned int K, vector &numbers); int main() { std::cin.tie(nullptr); std::ios::sync_with_stdio(false); unsigned int N, K; cin >> N >> K; vector numbers(N); for (int i = 0; i < N; ++i) cin >> numbers[i]; long long ans = solve(N, K, numbers); cout << ans << endl; } long long int solve(unsigned int N, unsigned int K, vector &numbers) { sort(numbers.begin(), numbers.end()); vector> gaps; for (int i = 1; i < N; ++i) gaps.push_back(make_pair(-(numbers[i] - numbers[i-1]), i)); sort(gaps.begin(), gaps.end()); long long ans = 0; int b = 0; for (int i = 0; i+1 < K; ++i) { int pos = gaps[i].second; ans += (numbers[pos-1] - numbers[b]); b = pos; } ans += numbers[N-1] - numbers[b]; return ans; }