Submission details
Task:Kolmijako
Sender:vgtcross
Submission time:2025-09-05 18:13:03 +0300
Language:C++ (C++20)
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED23
#2ACCEPTED42
#3ACCEPTED35
Test results
testverdicttimegroup
#1ACCEPTED0.00 s1, 2, 3details
#2ACCEPTED0.00 s2, 3details
#3ACCEPTED0.01 s3details

Code

#include <bits/stdc++.h>

#define MODE 1

#if MODE
#define debug(x) cout << #x << ": " << (x) << endl
#define log(x) cout << (x) << endl
#define test(x) x
#else
#define debug(x)
#define log(x)
#define test(x)
#endif

#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define fi first
#define se second
#define X real()
#define Y imag()

using namespace std;
using ll = long long;
using ld = long double;
using uint = unsigned int;
using ull = unsigned long long;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using P = complex<ll>;

template<typename S, typename T = S> void chmin(S &s, T t) {s = s < t ? s : t;}
template<typename S, typename T = S> void chmax(S &s, T t) {s = s > t ? s : t;}

const ll M = 1000000007; // 998244353

vector<vector<int>> calc(int n) {
    if (n < 0) exit(1);
    if (n == 2) return {{2}, {1}, {}};
    if (n == 3) return {{3}, {2}, {1}};
    auto a = calc(n-3);
    a[0].push_back(n-1);
    a[1].push_back(n-2);
    a[2].push_back(n);
    swap(a[1], a[2]);
    return a;
}

void solve() {
    int n;
    cin >> n;
    
    if (n % 3 == 1 || n < 5) {
        cout << "NO\n";
        return;
    }
    
    cout << "YES\n";
    auto a = calc(n-3);
    a[0].push_back(n-2);
    a[1].push_back(n-1);
    a[2].push_back(n);
    
    for (auto &b : a) {
        cout << b.size() << '\n';
        for (int x : b) cout << x << ' ';
        cout << '\n';
    }
}

int main() {
    cin.tie(0) -> sync_with_stdio(0);
    
    int t = 0;
    if (t == 0) cin >> t;
    while (t--) solve();
    
    return 0;
}

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
3 5 8 11 14 17 20 23 26 29 32 ...
Truncated