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

Code

#include <iostream>
#include <vector>
using namespace std;
void answer(int n) {
  if (n <= 4 || n % 6 == 1 || n % 6 == 4) {
    cout << "NO" << endl;
    return;
  }
  vector<int> g1, g2, g3;
  if (n % 6 == 2) {
    g1 = {1, 2, 3, 6};
    g2 = {4, 8};
    g3 = {5, 7};
  }
  if (n % 6 == 3) {
    g1 = {1, 2, 3, 4, 5};
    g2 = {6, 9};
    g3 = {7, 8};
  }
  if (n % 6 == 5) {
    g1 = {1, 4};
    g2 = {2, 3};
    g3 = {5};
  }
  for (int i = size(g1) + size(g2) + size(g3) + 1; i < n; i += 6) {
    g1.push_back(i);
    g2.push_back(i + 1);
    g3.push_back(i + 2);
    g3.push_back(i + 3);
    g2.push_back(i + 4);
    g1.push_back(i + 5);
  }
  cout << "YES" << endl;
  for (auto &v : {g1, g2, g3}) {
    cout << size(v) << endl;
    for (auto x : v) cout << x << ' ';
    cout << endl;
  }
}
int main() {
  int t;
  cin >> t;
  while (t--) {
    int n;
    cin >> n;
    answer(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