Submission details
Task:Kolmijako
Sender:tykkipeli
Submission time:2025-09-05 19:13:46 +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>
using namespace std;

typedef long long ll;

int get_sum(vector<int> v) {
    int res = 0;
    for (int x : v) res += x;
    return res;
}

void testCase(int n) {
    int sum = n*(n+1)/2;
    if (sum % 3 != 0 || n <= 3) {
        cout << "NO\n";
        return;
    }
    vector<int> a,b,c;

    int start = 1;
    if (n % 6 == 3) {
        a = {9,6};
        b = {8,7};
        c = {1,2,3,4,5};
        start += 9;
    }
    if (n % 6 == 2) {
        a = {2,3,7};
        b = {4,8};
        c = {1,5,6};
        start += 8;
    }
    if (n % 6 == 5) {
        a = {5};
        b = {2,3};
        c = {1,4};
        start += 5;
    }
    for (int i = start; i <= n; i += 6) {
        a.push_back(i);
        a.push_back(i+5);
        b.push_back(i+1);
        b.push_back(i+4);
        c.push_back(i+2);
        c.push_back(i+3);
    }
    
    cout << "YES\n";
    cout << a.size() << "\n";
    for (int x : a) cout << x << " ";
    cout << "\n";
    cout << b.size() << "\n";
    for (int x : b) cout << x << " ";
    cout << "\n";
    cout << c.size() << "\n";
    for (int x : c) cout << x << " ";
    cout << "\n";

    /*
    if (get_sum(a) != get_sum(b) || get_sum(b) != get_sum(c)) {
        cout << "ERROR" << endl;
        exit(0);
    }
    */
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);

    int t;
    cin >> t;
    for (int i = 0; i < t; i++) {
        int n;
        cin >> n;
        testCase(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
1 6 7 12 13 18 19 24 25 30 31 ...
Truncated