Submission #1152807

#TimeUsernameProblemLanguageResultExecution timeMemory
1152807ezzzaySnowball (JOI21_ho_t2)C++20
33 / 100
2594 ms592 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ff first
#define ss second
#define pb push_back
const int N=3e5+5;
int a[N];
int ans[N];
map< int, pair<int,int> > mp;
signed main(){
	int n,q;
	cin>>n>>q;
	int l=-1e17;
	vector<int>v;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		v.pb(a[i]-l);
		l=a[i];
	}
	v.pb(1e17);
	
	int s=0;
	while(q--){
		int x;
		cin>>x;
		s+=x;
		if(s==0)continue;
		if(s>0){
			for(int i=0;i<=n;i++){ // i- i+1
				mp[i].ff= min(s, v[i]- mp[i].ss );
			}
		}
		else{
			for(int i=n;i>=0;i--){
				mp[i].ss= min(abs(s), v[i]- mp[i].ff );
			}
		}
	}
	for(int i=0;i<=n;i++){
		ans[i]+=mp[i].ff;
		ans[i+1]+=mp[i].ss;
	}
	for(int i=1;i<=n;i++){
		cout<<ans[i]<<endl;
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...