https://www.acmicpc.net/problem/1461
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n, m;
int sum = 0;
cin >> n >> m;
int zero_index = 0;
vector<int> arr(n);
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
sort(arr.begin(), arr.end());
for (int i = 0; i < n; i++)
{
if (arr[i] < 0)
zero_index++;
else
break;
}
for (int i = 0; i < zero_index; i += m)
{
sum += abs(arr[i] * 2);
}
for (int i = n - 1; i >= zero_index; i -= m)
{
sum += (arr[i] * 2);
}
sum -= max(abs(arr[0]), abs(arr[n - 1]));
cout << sum;
return 0;
}
예외처리로 받은 값들이 다 음수 또는 양수인 것을 생각해야해서
마지막에 뺀 값을 할 때 둘 다 절댓값을 붙였다.
'백준 문제풀이 > 골드5' 카테고리의 다른 글
백준 2470번 - 두 용액 (0) | 2022.06.09 |
---|