Submission #1152826

#TimeUsernameProblemLanguageResultExecution timeMemory
1152826khangrlSnowball (JOI21_ho_t2)C++17
33 / 100
180 ms17672 KiB
#include<bits/stdc++.h> #define ff first #define ss second #define pb push_back #define int long long using namespace std; int n, q, last=0; vector <pair <int, int> > dist; signed main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>q; for(int i=0; i<n; i++){ int a; cin>>a; if(i==0){ last=a; continue ; } dist.pb({a-last, i-1}); last=a; } sort(dist.begin(), dist.end()); map<int,int>ans; int mn=0, mx=0, sum=0, j=0; while(q--){ int a; cin>>a; if(a==0){ continue ; } sum+=a; int mn1=min(mn, sum), mx1=max(mx, sum); while(dist[j].ff<=mx1-mn1 and j<n-1){ ans[dist[j].ss]+=mx; ans[dist[j].ss+1]+=abs(mn); int diff=dist[j].ff-(mx-mn); if(mn1==mn){ ans[dist[j].ss]+=diff; } else{ ans[dist[j].ss+1]+=diff; } j++; if(j==n-1)break; } mn=min(mn, sum); mx=max(mx, sum); } while(j<n-1){ ans[dist[j].ss]+=mx; ans[dist[j].ss+1]+=abs(mn); j++; } ans[0]+=abs(mn); ans[n-1]+=mx; for(int i=0; i<n; i++){ cout<<ans[i]<<"\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...