| Task: | Kolmijako |
| Sender: | jlaire |
| Submission time: | 2025-09-05 18:28:45 +0300 |
| Language: | C++ (C++11) |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 23 |
| #2 | ACCEPTED | 42 |
| #3 | ACCEPTED | 35 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #2 | ACCEPTED | 0.00 s | 2, 3 | details |
| #3 | ACCEPTED | 0.01 s | 3 | details |
Compiler report
input/code.cpp: In function 'int main()':
input/code.cpp:65:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
65 | scanf("%d", &t);
| ~~~~~^~~~~~~~~~
input/code.cpp:68:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
68 | scanf("%d", &n);
| ~~~~~^~~~~~~~~~Code
#include <assert.h>
#include <stdio.h>
int group[1024];
int size[3];
int big;
bool go(int n, int sum, int g)
{
if (sum==0) return true;
for (int i=sum>big?big:sum; i>0; i--) {
if (i==big && group[i]) big--;
if (group[i]) continue;
group[i] = g;
size[g]++;
if (!go(n, sum-i, g)) {
assert(0);
return false;
}
return true;
}
if (sum > 0) {
assert(0);
return false;
}
return true;
}
void solve(int n)
{
int sum = n*(n+1)/2;
if (sum%3) {
goto fail;
}
if (n<=3) goto fail;
big = n;
for (int i=1; i<=n; i++) group[i]=0;
for (int i=0; i<3; i++) size[i]=0;
if (!go(big, sum/3, 1)) { assert(0); goto fail; }
if (!go(big, sum/3, 2)) { assert(0); goto fail; }
size[0] = n-size[1]-size[2];
puts("YES");
for (int g=0; g<3; g++) {
printf("%d\n", size[g]);
for (int i=1; i<=n; i++) {
if (group[i]==g) {
printf("%d%c", i, "\n "[!!--size[g]]);
}
}
}
return;
fail:
puts("NO");
}
int main(void)
{
int t;
scanf("%d", &t);
for (int i=0; i<t; i++) {
int n;
scanf("%d", &n);
solve(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 325 1 2 3 4 5 6 7 8 9 10 11 12 13 ... Truncated |
