Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void solve()
- {
- ll n;
- cin >> n;
- vector<ll> A(n);
- for (ll i = 0; i < n; i++)
- cin >> A[i];
- ll mx = accumulate(A.begin(), A.end(), 0LL) / 2;
- vector<vector<ll>> ans(3);
- ll i = 0, sum = 0;
- for (i; i < n - 2; i++)
- {
- if (mx >= sum + A[i] || ans[0].size() == 0)
- {
- sum += A[i];
- ans[0].push_back(A[i]);
- }
- else
- {
- break;
- }
- }
- sum = 0;
- for (i; i < n - 1; i++)
- {
- if (mx >= sum + A[i] || ans[1].size() == 0)
- {
- sum += A[i];
- ans[1].push_back(A[i]);
- }
- else
- {
- break;
- }
- }
- sum = 0;
- for (i; i < n; i++)
- {
- if (mx >= sum + A[i] || ans[2].size() == 0)
- {
- sum += A[i];
- ans[2].push_back(A[i]);
- }
- else
- {
- break;
- }
- }
- if (i != n)
- {
- cout << "NO" << endl;
- }
- else
- {
- cout << "YES" << endl;
- for (ll i = 0; i < 3; i++)
- {
- for (auto a : ans[i])
- {
- cout << a << " ";
- }
- cout << endl;
- }
- }
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement