Submission #710865

#TimeUsernameProblemLanguageResultExecution timeMemory
710865pavementRainy Markets (CCO22_day1problem2)C++17
5 / 25
532 ms90740 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; #define int long long #define mp make_pair #define mt make_tuple #define pb push_back #define ppb pop_back #define eb emplace_back #define g0(a) get<0>(a) #define g1(a) get<1>(a) #define g2(a) get<2>(a) #define g3(a) get<3>(a) mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); using db = double; using ll = long long; using ld = long double; using ii = pair<int, int>; using iii = tuple<int, int, int>; using iiii = tuple<int, int, int, int>; template<class key, class value = null_type, class cmp = less<key> > using ordered_set = tree<key, value, cmp, rb_tree_tag, tree_order_statistics_node_update>; int N, ans, B[1000005], P[1000005], U[1000005], V[1000005], ml[1000005], mr[1000005]; main() { ios::sync_with_stdio(0); cin.tie(0); cin >> N; for (int i = 1; i <= N; i++) { cin >> B[i]; } for (int i = 1; i < N; i++) { cin >> P[i]; } for (int i = 1; i < N; i++) { cin >> U[i]; int tmp = P[i]; P[i] = max(0ll, P[i] - U[i]); V[i] = tmp - P[i]; } for (int i = 1; i < N; i++) { int tmp = B[i]; B[i] = max(0ll, B[i] - P[i]); P[i] -= (tmp - B[i]); ml[i] = tmp - B[i]; if (B[i + 1] < P[i]) return cout << "NO\n", 0; B[i + 1] -= P[i]; mr[i] = P[i]; } for (int i = 1; i < N; i++) { int tmp = B[i]; B[i] = max(0ll, B[i] - V[i]); V[i] -= (tmp - B[i]); ml[i] += tmp - B[i]; int tmp2 = B[i + 1]; B[i + 1] = max(0ll, B[i + 1] - V[i]); V[i] -= (tmp2 - B[i + 1]); mr[i] += (tmp2 - B[i + 1]); } for (int i = 1; i < N; i++) { ans += V[i]; } cout << "YES\n" << ans << '\n'; for (int i = 1; i < N; i++) { cout << ml[i] << ' ' << V[i] << ' ' << mr[i] << '\n'; } }

Compilation message (stderr)

Main.cpp:28:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   28 | 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...