Submission #943927

#TimeUsernameProblemLanguageResultExecution timeMemory
9439278pete8Safety (NOI18_safety)C++17
100 / 100
48 ms5724 KiB
#include<iostream> #include<stack> #include<map> #include<vector> #include<string> #include<unordered_map> #include <queue> #include<cstring> #include<limits.h> #include <cassert> #include <cstdint> #include<cmath> #include<set> #include<algorithm> #include <iomanip> #include<numeric> //gcd(a,b) #include<bitset> using namespace std; #define ll long long #define f first #define endl "\n" #define s second #define pii pair<int,int> #define ppii pair<int,pii> #define vi vector<int> #define pb push_back #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() #define F(n) for(int i=0;i<n;i++) #define lb lower_bound #define ub upper_bound #define fastio ios::sync_with_stdio(false);cin.tie(NULL); #pragma GCC optimize ("03,unroll-loops") using namespace std; #define int long long #define double long double const int mod=1e9+7,mxn=1e5+5,lg=21,inf=1e18,minf=-1e18; int32_t main(){ fastio int n,h;cin>>n>>h; priority_queue<int>l; priority_queue<int,vector<int>,greater<int>>r; int a;cin>>a; int add=0,k; l.push(a); r.push(a); int ans=0; add+=h; for(int i=0;i<n-1;i++){ cin>>a; if(a>=r.top()+add){ k=r.top()+add; r.pop(); r.push(a-add); r.push(a-add); ans+=abs(k-a); l.push(k+add); } else if(a>=l.top()-add){ l.push(a+add); r.push(a-add); } else{ k=l.top()-add; l.pop(); l.push(a+add); l.push(a+add); ans+=abs(k-a); r.push(k-add); } add+=h; } 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...