Submission #868463

#TimeUsernameProblemLanguageResultExecution timeMemory
868463WarinchaiSafety (NOI18_safety)C++14
100 / 100
53 ms5492 KiB
#include<bits/stdc++.h>
#define int long long
using namespace std;
priority_queue<int>pql;
priority_queue<int,vector<int>,greater<int> >pqr;
int lzl,lzr;
int ans=0;
int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n,h;
    cin>>n>>h;
    for(int i=0;i<n;i++){
        int a;
        cin>>a;
        if(i>0&&a<pql.top()+lzl){
            //cout<<"left\n";
            pql.push(a-lzl);
            pql.push(a-lzl);
            ans+=abs(a-pql.top()-lzl);
            pqr.push(pql.top()+lzl-lzr);
            pql.pop();
        }else if(i>0&&a>pqr.top()+lzr){
            //cout<<"right\n";
            pqr.push(a-lzr);
            pqr.push(a-lzr);
            ans+=abs(a-pqr.top()-lzr);
            pql.push(pqr.top()+lzr-lzl);
            pqr.pop();
        }else{
            //cout<<"middle\n";
            pql.push(a-lzl);
            pqr.push(a-lzr);
        }
        lzl-=h;
        lzr+=h;
        //cout<<ans<<" ";
    }
    cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...