제출 #1167461

#제출 시각아이디문제언어결과실행 시간메모리
1167461WarinchaiSafety (NOI18_safety)C++20
100 / 100
33 ms5240 KiB
#include<bits/stdc++.h> #define int long long using namespace std; int ar[200005]; priority_queue<int,vector<int>,greater<int>>pqr; priority_queue<int>pql; int lzl=0; int lzr=0; int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(0); int n,h;cin>>n>>h; for(int i=1;i<=n;i++){ cin>>ar[i]; } int ans=0; for(int i=1;i<=n;i++){ lzl-=h; lzr+=h; if(i!=1&&ar[i]>pqr.top()+lzr){ ans+=abs(ar[i]-(pqr.top()+lzr)); pqr.push(ar[i]-lzr); pqr.push(ar[i]-lzr); pql.push(pqr.top()+lzr-lzl); pqr.pop(); }else if(i!=1&&ar[i]<pql.top()+lzl){ ans+=abs(ar[i]-(pql.top()+lzl)); pql.push(ar[i]-lzl); pql.push(ar[i]-lzl); pqr.push(pql.top()+lzl-lzr); pql.pop(); }else{ pql.push(ar[i]-lzl); pqr.push(ar[i]-lzr); } } 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...