Task: | Kolmijako |
Sender: | MojoLake |
Submission time: | 2025-09-07 19:06:53 +0300 |
Language: | C++ (C++20) |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 23 |
#2 | ACCEPTED | 42 |
#3 | ACCEPTED | 35 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
#2 | ACCEPTED | 0.00 s | 2, 3 | details |
#3 | ACCEPTED | 0.01 s | 3 | details |
Code
#include <bits/stdc++.h> #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() using namespace std; using ll = long long; const int inf = 1e9; const ll LLinf = 1e18; tuple<vector<int>, vector<int>> ite(vector<int> v, int tar) { vector<int> w; vector<int> ret; int cur_sum = 0; for (int x : v) { if (cur_sum + x <= tar) { cur_sum += x; ret.push_back(x); } else { w.push_back(x); } } assert(cur_sum == tar); return {w, ret}; } tuple<vector<int>, vector<int>, vector<int>> calc(int n) { vector<int> v(n); iota(all(v), 1); reverse(all(v)); int s = (n * (n + 1)) / 2; int tar = s / 3; auto [new_v, a] = ite(v, tar); v = new_v; auto [neww_v, b] = ite(v, tar); v = neww_v; auto [_, c] = ite(v, tar); return {a, b, c}; } void solve() { int i; cin >> i; if (i % 3 == 1 || i <= 3) { cout << "NO\n"; return; } auto [a, b, c] = calc(i); cout << "YES\n"; cout << sz(a) << "\n"; for (int x : a) cout << x << " "; cout << "\n"; cout << sz(b) << "\n"; for (int x : b) cout << x << " "; cout << "\n"; cout << sz(c) << "\n"; for (int x : c) cout << x << " "; cout << "\n"; } int main() { // cin.tie(0)->sync_with_stdio(0); int tt = 1; cin >> tt; while (tt--) { solve(); } }
Test details
Test 1
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
15 1 2 3 4 ... |
correct output |
---|
NO NO NO NO YES ... |
user output |
---|
NO NO NO NO YES ... Truncated |
Test 2
Group: 2, 3
Verdict: ACCEPTED
input |
---|
100 1 2 3 4 ... |
correct output |
---|
NO NO NO NO YES ... |
user output |
---|
NO NO NO NO YES ... Truncated |
Test 3
Group: 3
Verdict: ACCEPTED
input |
---|
100 564 895 546 980 ... |
correct output |
---|
YES 188 1 6 12 7 18 13 24 19 30 25 36 ... |
user output |
---|
YES 104 564 563 562 561 560 559 558 55... Truncated |