Submission #200379

#TimeUsernameProblemLanguageResultExecution timeMemory
200379wilwxkSafety (NOI18_safety)C++14
0 / 100
59 ms2876 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int n, x;
priority_queue<int> l;
priority_queue<int, vector<int>, greater<int> > r;
int llz, rlz;
ll ans;

int main() {
	scanf("%d %d", &n, &x);
	for(int i = 1; i <= n; i++) {
		int val; scanf("%d", &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();
		}
		else {
			r.push(val-rlz);
			r.push(val-rlz);
			l.push(r.top()+rlz-llz);
			r.pop();
		}
		ans += r.top()+rlz-l.top()-llz;
		// 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:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   int val; scanf("%d", &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...