Submission #638757

#TimeUsernameProblemLanguageResultExecution timeMemory
638757morasha3Rainy Markets (CCO22_day1problem2)C++17
0 / 25
242 ms48940 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef double ld; const ll mod=1e9+7; #define endl '\n' int32_t main() { //freopen("jumping.in","r",stdin); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); ll n; cin>>n; ll arr[n]; for(int i=0;i<n;i++) { cin>>arr[i]; } vector<ll>v,b; for(int i=0;i<n-1;i++) { ll x; cin>>x; v.push_back(x); } for(int i=0;i<n-1;i++) { ll x; cin>>x; b.push_back(x); } bool f=1; ll cnt=0; for(int i=0;i<n-1;i++) { ll o=v[i]; o-=arr[i]-cnt; cnt=0; if(o>0) { o-=b[i]; if(o>0) { ll u=o; o-=arr[i+1]; if(o>0) { f=0; break; } cnt=u; } } } if(f==0) { cout<<"NO"; } else { cnt=0; ll ans=0; cout<<"YES"<<endl; cnt=0; vector<ll>ans1,ans2,ans3; for(int i=0;i<n-1;i++) { ll o=v[i]; o-=arr[i]; ans1.push_back(min(arr[i],v[i])); arr[i]-=min(arr[i],v[i]); if(o>0) { v[i]=o; o-=b[i]; ans2.push_back(min(b[i],v[i])); if(o>0) { v[i]=o; ans3.push_back(v[i]); arr[i+1]-=v[i]; } else ans3.push_back(0); } else { ans2.push_back(0); ans3.push_back(0); } } for(int i=0;i<n-1;i++) { if(arr[i]>0) { ll o=min(ans2[i],arr[i]); ans2[i]-=o; ans1[i]+=o; if(arr[i]>0) { arr[i+1]+=arr[i]; ans1[i]+=arr[i]; ans3[i]-=arr[i]; arr[i]=0; } } } for(int i=n-2;i>=0;i--) { if(arr[i+1]>0) { ll o=min(ans2[i],arr[i+1]); ans2[i]-=o; ans3[i]+=o; arr[i+1]-=o; if(arr[i+1]>0) { arr[i]+=arr[i+1]; ans1[i]-=arr[i+1]; ans3[i]+=arr[i+1]; } } } for(int i=0;i<n-1;i++) { ans+=ans2[i]; } cout<<ans<<endl; for(int i=0;i<n-1;i++) { cout<<ans1[i]<<" "<<ans2[i]<<" "<<ans3[i]<<endl; } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...