이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define DEBUG false
using namespace std;
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int N, H, S;
cin >> N >> H >> S;
long long shift = 0, yMin = 0;
multiset <long long> L, R;
L.insert(S);
R.insert(S);
for(int i = 2; i <= N; i++) {
cin >> S;
shift += H;
if(S < *L.rbegin() - shift) {
yMin += (*L.rbegin() - shift) - S;
L.insert(S + shift);
L.insert(S + shift);
R.insert(*L.rbegin() - 2 * shift);
L.erase(L.lower_bound(*L.rbegin()));
}
else if(S > *R.begin() + shift) {
yMin += S - (*R.begin() + shift);
R.insert(S - shift);
R.insert(S - shift);
L.insert(*R.begin() + 2 * shift);
R.erase(R.lower_bound(*R.begin()));
}
else {
L.insert(S + shift);
R.insert(S - shift);
}
}
cout << yMin;
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |