Submission #1314695

#TimeUsernameProblemLanguageResultExecution timeMemory
1314695bearrbearrRainy Markets (CCO22_day1problem2)C++20
25 / 25
1053 ms76620 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long 
#define ii pair<int,int>
#define sec second
#define fir first

signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    int n; cin>>n;
    int b[n+1],p[n+1],u[n+1];
    for(int q=1;q<=n;q++){
        cin>>b[q];
    }
    for(int q=1;q<n;q++){
        cin>>p[q];
    }
    for(int q=1;q<n;q++){
        cin>>u[q];
    }

    int ans[n+1][3];

    bool yey=true;
    for(int q=1;q<n;q++){
        int brp=min(b[q],p[q]);
        b[q]-=brp; p[q]-=brp;
        ans[q][0]=brp;

        brp=min(u[q],p[q]);
        u[q]-=brp,p[q]-=brp;
        ans[q][1]=brp;

        brp=min(b[q+1],p[q]);
        b[q+1]-=brp,p[q]-=brp;
        ans[q][2]=brp;

        if(p[q]>0){
            yey=false; break;
        }
    }   


    if(!yey){
        cout<<"NO"<<endl; return 0;
    }

    for(int q=n-1;q>=1;q--){
        int brp=min(b[q+1],ans[q][1]);
        b[q+1]-=brp,u[q]+=brp;
        ans[q][2]+=brp,ans[q][1]-=brp;

        brp=min(b[q+1],ans[q][0]);
        b[q+1]-=brp,b[q]+=brp;
        ans[q][2]+=brp,ans[q][0]-=brp;
    }
    for(int q=1;q<=n;q++)assert(b[q]>=0);

    int tot=0;
    for(int q=1;q<n;q++)tot+=ans[q][1];

    cout<<"YES"<<endl;
    cout<<tot<<endl;
    for(int q=1;q<n;q++){
        cout<<ans[q][0]<<" "<<ans[q][1]<<" "<<ans[q][2]<<endl;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...