Submission details
Task:Kolmijako
Sender:Guuber3
Submission time:2025-09-06 12:54:59 +0300
Language:C++ (C++17)
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<iostream>
#include<vector>
#include<set>
using namespace std;

void solve() {
	int n;
	cin >> n;

	int target = (n*(n+1))/6;

	vector<int> a,b,c;

	vector<int> sums(3, 0);
	for (int i = n; i > 0; i--)  {
		if (sums[2] + i <= target) {
			c.push_back(i);
			sums[2] += i;
			continue;
		}
		if (sums[1] + i <= target) {
			b.push_back(i);
			sums[1] += i;
			continue;
		}
		if (sums[0] + i <= target) {
			a.push_back(i);
			sums[0] += i;
			continue;
		}
		cout << "NO\n";
		return;
	}

	cout << "YES\n";
	cout << a.size() << "\n";
	for (auto u : a) cout << u << " ";
	cout << "\n";
	cout << b.size() << "\n";
	for (auto u : b) cout << u << " ";
	cout << "\n";
	cout << c.size() << "\n";
	for (auto u : c) {
		cout << u << " ";
	}
	cout << "\n";
}

int main() {
	int t;
	cin >> t;
	while (t--) solve();
}

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
325
327 326 325 324 323 322 321 32...
Truncated