문제출처 : https://www.acmicpc.net/problem/2212
code
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int N, K, i, j = 0, result = 0;
cin >> N;
cin >> K;
vector<int>arr(N);
vector<int>sub(N - 1);
for (i = 0; i < N; i++)
cin >> arr[i];
sort(arr.begin(), arr.end());
result = arr[N-1] - arr[0];
for (i = 1; i < N; i++)
{
sub[j] = arr[i] - arr[i - 1];
j++;
}
sort(sub.begin(), sub.end(), greater<>());
if (N <= K)
result = 0;
else
{
for (i = 0; i < K - 1; i++)
result -= sub[i];
}
cout << result;
return 0;
}
조금만 생각하면 쉽게 풀리는문제였다.
만약 N보다 K가 크거나같으면 적어도 센서하나당 기지국이 하나세워지는거라서 합의 최솟값은 0이 된다.