Submission #710977

#TimeUsernameProblemLanguageResultExecution timeMemory
710977penguin133Rainy Markets (CCO22_day1problem2)C++17
10 / 25
493 ms73440 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pi pair<int, int> #define pii pair<int, pi> #define fi first #define se second #ifdef _WIN32 #define getchar_unlocked _getchar_nolock #endif mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); int A[1000005], B[1000005], C[1000005], n; pii ans[1000005]; int fin = 0; void solve(){ cin >> n; for(int i=1;i<=n;i++)cin >> A[i]; for(int i=1;i<n;i++)cin >> B[i]; for(int i=1;i<n;i++)cin >> C[i]; if(n > 2000){ for(int i=1;i<n;i++){ ans[i].fi = min(A[i], B[i]); B[i] -= min(B[i], A[i]); if(B[i] > A[i+1]){ cout << "NO\n"; return; } ans[i].se.se = B[i]; A[i+1] -= B[i]; } cout << "YES\n 0\n"; for(int i=1;i<n;i++)cout << ans[i].fi << ' ' << 0 << ' ' << ans[i].se.se << '\n'; return; } for(int i=1;i<n;i++){ int x = min(B[i], A[i]); ans[i].fi = x; B[i] -= x; A[i] -= x; x = min(B[i], A[i+1]); ans[i].se.se = x; B[i] -= x; A[i+1] -= x; for(int j=i;j>=1;j--){ if(!B[i])break; x = min(B[i], C[j]); C[j] -= x; B[i] -= x; ans[j].se.fi += x; fin += x; for(int k=j;k<i;k++)ans[k].se.se -= x, ans[k+1].fi += x; } if(B[i]){ cout << "NO\n"; return; } } for(int i=1;i<=n;i++)if(ans[i].se.se < 0){cout << "NO"; return;} cout << "YES\n" << fin << '\n'; for(int i=1;i<n;i++)cout << ans[i].fi << ' ' << ans[i].se.fi << ' ' << ans[i].se.se << '\n'; } main(){ ios::sync_with_stdio(0);cin.tie(0); int tc = 1; //cin >> tc; for(int tc1=1;tc1<=tc;tc1++){ // cout << "Case #" << tc1 << ": "; solve(); } }

Compilation message (stderr)

Main.cpp:65:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   65 | main(){
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...