Submission #173851

#TimeUsernameProblemLanguageResultExecution timeMemory
173851arnold518Safety (NOI18_safety)C++14
100 / 100
76 ms6252 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; const int MAXN = 2e5; int N, K, A[MAXN+10]; ll lx, rx, y; priority_queue<ll, vector<ll>, less<ll>> l; priority_queue<ll, vector<ll>, greater<ll>> r; int main() { int i, j; scanf("%d%d", &N, &K); for(i=1; i<=N; i++) scanf("%d", &A[i]); lx=rx=y=0; l.push(A[1]); r.push(A[1]); for(i=2; i<=N; i++) { lx-=K; rx+=K; if(l.top()+lx<=A[i] && A[i]<=r.top()+rx) { l.push(A[i]-lx); r.push(A[i]-rx); } else if(A[i]<l.top()+lx) { y+=l.top()+lx-A[i]; r.push(l.top()+lx-rx); l.pop(); l.push(A[i]-lx); l.push(A[i]-lx); } else { y+=A[i]-r.top()-rx; l.push(r.top()+rx-lx); r.pop(); r.push(A[i]-rx); r.push(A[i]-rx); } } printf("%lld", y); }

Compilation message (stderr)

safety.cpp: In function 'int main()':
safety.cpp:17:12: warning: unused variable 'j' [-Wunused-variable]
     int i, j;
            ^
safety.cpp:19:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &N, &K);
     ~~~~~^~~~~~~~~~~~~~~~
safety.cpp:20:30: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     for(i=1; i<=N; i++) scanf("%d", &A[i]);
                         ~~~~~^~~~~~~~~~~~~
#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...