| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1324034 | sh_qaxxorov_571 | 선물상자 (IOI15_boxes) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
using namespace std;
long long delivery(int N, int K, int L, vector<int>& positions) {
vector<int> right_side;
vector<int> left_side;
for (int i = 0; i < N; i++) {
int d = positions[i];
if (d <= L - d) {
right_side.push_back(d);
} else {
left_side.push_back(L - d);
}
}
sort(right_side.begin(), right_side.end());
sort(left_side.begin(), left_side.end());
long long total = 0;
// O‘ng tomonni hisoblash
for (int i = right_side.size() - 1; i >= 0; i -= K) {
total += 2LL * right_side[i];
}
// Chap tomonni hisoblash
for (int i = left_side.size() - 1; i >= 0; i -= K) {
total += 2LL * left_side[i];
}
return total;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N, K, L;
cin >> N >> K >> L;
vector<int> positions(N);
for (int i = 0; i < N; i++) {
cin >> positions[i];
}
cout << delivery(N, K, L, positions) << "\n";
return 0;
}
