백준 문제풀이/골드5
백준 1461번 - 도서관
void_melody
2022. 8. 4. 15:00
https://www.acmicpc.net/problem/1461
1461번: 도서관
세준이는 도서관에서 일한다. 도서관의 개방시간이 끝나서 세준이는 사람들이 마구 놓은 책을 다시 가져다 놓아야 한다. 세준이는 현재 0에 있고, 사람들이 마구 놓은 책도 전부 0에 있다. 각 책
www.acmicpc.net
#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;
}
예외처리로 받은 값들이 다 음수 또는 양수인 것을 생각해야해서
마지막에 뺀 값을 할 때 둘 다 절댓값을 붙였다.