Submission #200385

#TimeUsernameProblemLanguageResultExecution timeMemory
200385wilwxkSafety (NOI18_safety)C++14
100 / 100
89 ms5524 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; int n, x; priority_queue<ll> l; priority_queue<ll, vector<ll>, greater<ll> > r; ll llz, rlz; ll ans; int main() { scanf("%d %d", &n, &x); for(int i = 1; i <= n; i++) { ll val; scanf("%lld", &val); if(i == 1) { l.push(val); r.push(val); continue; } llz -= x; rlz += x; if(val <= l.top()+llz) { l.push(val-llz); l.push(val-llz); r.push(l.top()+llz-rlz); l.pop(); ans += abs(r.top()+rlz-val); } else { r.push(val-rlz); r.push(val-rlz); l.push(r.top()+rlz-llz); r.pop(); ans += abs(l.top()+llz-val); } // printf("%d >> %d %d >> %d %d >> %lld\n", i, l.top(), r.top(), llz, rlz, ans); } printf("%lld\n", ans); }

Compilation message (stderr)

safety.cpp: In function 'int main()':
safety.cpp:12:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d", &n, &x);
  ~~~~~^~~~~~~~~~~~~~~~~
safety.cpp:14:16: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   ll val; scanf("%lld", &val);
           ~~~~~^~~~~~~~~~~~~~
#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...