| 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 |
