이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+5;
int n,h;
int a[N];
ll lzl,lzr,ans;
multiset<int> msl,msr;
int main(){
cin.tie(nullptr)->sync_with_stdio(false);
cin >> n >> h;
for(int i=1;i<=n;i++){
ll x;
cin >> x;
if(i>1&&x<*msl.rbegin()+lzl){
msl.emplace(x-lzl);
msl.emplace(x-lzl);
ll res=*msl.rbegin()+lzl;
ans+=res-x;
msl.erase(prev(msl.end()));
msr.emplace(res-lzr);
}else if(i>1&&x>*msr.begin()+lzr){
msr.emplace(x-lzr);
msr.emplace(x-lzr);
ll res=*msr.begin()+lzr;
ans+=x-res;
msr.erase(msr.begin());
msl.emplace(res-lzl);
}else{
msl.emplace(x-lzl);
msr.emplace(x-lzr);
}
lzl-=h;
lzr+=h;
}
cout << ans;
}
# | 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... |