Submission #1346128

#TimeUsernameProblemLanguageResultExecution timeMemory
1346128yc11Snowball (JOI21_ho_t2)C++20
0 / 100
5 ms344 KiB
#include<bits/stdc++.h>
#define int long long
using namespace std;
vector<int> n1;
vector<int> n2;
signed main(){
    int n,q;
    cin>>n>>q;
    n1.resize(n);
    n2.resize(n);
    for (int i = 0;i<n;i++){
        cin>>n1[i];

        n2[i] = 0;
    }
    int c =0;
    int ll = 0;
    int rr = 0;
    for (int i = 0;i<q;i++){

        int w;
        cin>>w;
        c+=w;
        if ((c<0 and c>ll) or (c>0 and c<rr)) continue;

        if (c<0){
            for (int i = 0;i<n;i++){
                int limit = -1e18;
                if (i!=0) limit = n1[i-1]+rr;

    
                int y = 0;
                if (limit>c+n1[i]) y = limit-c-n1[i];

                if (ll-c>y) n2[i]+=ll-c-y;

            }
            ll = c;
        }
        else{
            for (int i = n-1;i>=0;i--){
                int limit = 1e18;
                if (i!=n-1) {limit = n1[i+1]+ll;}
                int y = 0;


                if (limit<c+n1[i]) {y = c+n1[i]-limit;}
       



                if (c-rr>y)n2[i]+=c-rr-y;

            }
            rr = c;
        }
    }
    for (int i = 0;i<n;i++) cout<<n2[i]<<"\n";
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...