Task: | Kolmijako |
Sender: | mangolassi |
Submission time: | 2025-09-07 12:09:16 +0300 |
Language: | C++ (C++11) |
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> using namespace std; using ll = long long; vector<vector<int>> build(int n) { if (n <= 4 || (n % 3 == 1)) return {}; if (n <= 9) { if (n == 5) return {{4, 1}, {3, 2}, {5}}; // target 5 if (n == 6) return {{5, 2}, {4, 3}, {6, 1}}; // target 7 if (n == 8) return {{8, 4}, {7, 5}, {6, 3, 2, 1}}; // target 12 if (n == 9) return {{9, 6}, {8, 7}, {5, 4, 3, 2, 1}}; // target 15 assert(false); } else { auto sub = build(n - 6); for (int i = 0; i < 3; ++i) { sub[i].push_back(n - i); sub[i].push_back(n - 5 + i); } return sub; } } int main() { ios_base::sync_with_stdio(false); cin.tie(0); int q; cin >> q; for (int qi = 0; qi < q; ++qi) { int n; cin >> n; auto res = build(n); if (res.empty()) cout << "NO\n"; else { cout << "YES\n"; for (int i = 0; i < 3; ++i) { sort(res[i].begin(), res[i].end()); cout << res[i].size(); for (auto v : res[i]) cout << ' ' << v; cout << '\n'; } } } }
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 188 2 5 7 12 13 18 19 24 25 30... Truncated |