Submission details
Task:Kolmijako
Sender:jhuun
Submission time:2025-09-07 00:03:36 +0300
Language:C++ (C++20)
Status:READY
Result:23
Feedback
groupverdictscore
#1ACCEPTED23
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.00 s1, 2, 3details
#20.00 s2, 3details
#30.01 s3details

Code

#include <bits/stdc++.h>

int main() {
    int t;
    std::cin >> t;
    for (int i = 0, n; i < t; ++i) {
        std::cin >> n;
        int S = n * (n + 1) / 2;
        int S3 = S / 3;
        if (S % 3 == 0 && S3 >= n) {
            std::set<int> X3;
            std::set<int> X2;
            std::set<int> X1;
            for (int i = n, s = 0; s < S3 && i >= 1; --i) {
                if (s + i <= S3) X3.insert(i);
                else X3.insert(S3 - s);
                s += i;
            }
            for (int i = n, s = 0; s <= S3 && i >= 1; --i) {
                if (X3.count(i)) continue;
                if (s + i <= S3) X2.insert(i);
                else X2.insert(S3 - s);
                s += i;
            }
            for (int i = n, s = 0; s <= S3 && i >= 1; --i) {
                if (X3.count(i) || X2.count(i)) continue;
                if (s + i <= S3) X1.insert(i);
                else X1.insert(S3 - s);
                s += i;
            }
            std::cout << "YES\n";
            std::cout << X3.size() << '\n';
            for (const auto x : X3) std::cout << x << ' ';
            std::cout << '\n';
            std::cout << X2.size() << '\n';
            for (const auto x : X2) std::cout << x << ' ';
            std::cout << '\n';
            std::cout << X1.size() << '\n';
            for (const auto x : X1) std::cout << x << ' ';
            std::cout << '\n';
        } else {
            std::cout << "NO\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:

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:

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
271 462 463 464 465 466 467 46...
Truncated