Submission #676508

# Submission time Handle Problem Language Result Execution time Memory
676508 2022-12-31T04:31:12 Z numberes Safety (NOI18_safety) C++17
18 / 100
52 ms 6124 KB
/**
 * @date    2022-12-31 10:53:37
 * @author  numberes
 * 煮不在乎.RAmen!
 * https://oj.uz/problem/view/NOI18_safety
 */
#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define pii pair<int,int>
#define ll long long
using namespace std;
priority_queue<ll> l;
priority_queue<ll,vector<ll>,greater<ll> > r;
int ls,rs;
int n,h,s[200005];
int main(){
	ls=rs=0;
	scanf("%d %d",&n,&h);
	ll res=0;
	for(int i=1;i<=n;i++){
		scanf("%d",&s[i]);
		if(i==1){
			l.push(s[i]);
			r.push(s[i]);
			continue;
		}
		ls-=h;rs+=h;
		if(s[i]<l.top()+ls){
			l.push(s[i]-ls);
			l.push(s[i]-ls);
			r.push(l.top()+ls-rs);
			res+=l.top()+ls-s[i];
			l.pop();
		}
		else if(s[i]>r.top()+rs){
			r.push(s[i]-rs);
			r.push(s[i]-rs);
			l.push(r.top()+rs-ls);
			res+=s[i]-r.top()-rs;
			r.pop();
		}
		else{
			l.push(s[i]-ls);
			r.push(s[i]-rs);
		}
	}
	printf("%lld\n",res);
    return 0;
}

Compilation message

safety.cpp: In function 'int main()':
safety.cpp:21:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   21 |  scanf("%d %d",&n,&h);
      |  ~~~~~^~~~~~~~~~~~~~~
safety.cpp:24:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   24 |   scanf("%d",&s[i]);
      |   ~~~~~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 316 KB Output is correct
4 Incorrect 0 ms 212 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 312 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 308 KB Output is correct
4 Correct 1 ms 312 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 308 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 312 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 35 ms 5208 KB Output is correct
2 Correct 50 ms 5900 KB Output is correct
3 Correct 52 ms 6124 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 316 KB Output is correct
4 Incorrect 0 ms 212 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 316 KB Output is correct
4 Incorrect 0 ms 212 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 316 KB Output is correct
4 Incorrect 0 ms 212 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 316 KB Output is correct
4 Incorrect 0 ms 212 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 316 KB Output is correct
4 Incorrect 0 ms 212 KB Output isn't correct
5 Halted 0 ms 0 KB -