#include <stdio.h>
#include <algorithm>
using namespace std;
int N, K;
int x[1000001];
int dis[1000000];
int main()
{
int tc;
scanf("%d", &tc);
for (int t = 1; t <= tc; t++)
{
int answer = 0;
scanf("%d %d", &N, &K);
for (int i = 0; i < N; i++)
{
scanf("%d", &x[i]);
}
for (int i = 0; i < N - 1; i++)
{
dis[i] = x[i + 1] - x[i];
}
sort(dis, dis + N - 1);
for (int i = 0; i < N - K; i++)
{
answer += dis[i];
}
printf("#%d %d\n", t, answer);
}
}
1. N개의 집 중에서 K개의 발전소를 꼭 설치해야함
2. 그럼 나머지 N - K개는 꼭 전선의 길이를 가지게 됨
3. 각 전선의 길이를 배열에 담아놓음
4. 오름차순 정렬 후 N - K개만 더해보리기
5. 끝
'공부 > SWEA' 카테고리의 다른 글
SWEA 1249. [S/W 문제해결 응용] 4일차 - 보급로 (C++) (0) | 2024.05.15 |
---|---|
SWEA 3376. 파도반 수열 (C++) (0) | 2024.05.15 |
SWEA 3408. 세가지 합 구하기 (C++) (0) | 2024.05.12 |
SWEA 8104. 조 만들기 (C++) (0) | 2024.05.11 |
SWEA 4371. 항구에 들어오는 배 (C++) (0) | 2024.05.11 |