| Task: | Kolmijako |
| Sender: | tkok |
| Submission time: | 2025-09-06 00:41:35 +0300 |
| Language: | Python3 (PyPy3) |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 23 |
| #2 | ACCEPTED | 42 |
| #3 | ACCEPTED | 35 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.04 s | 1, 2, 3 | details |
| #2 | ACCEPTED | 0.06 s | 2, 3 | details |
| #3 | ACCEPTED | 0.07 s | 3 | details |
Code
t = int(input())
while t > 0:
t -= 1
n = int(input())
luvut = list(range(1, n+1))
sum = ((1+n) / 2) * n
if sum % 3 == 0:
tavoite = sum / 3
joukko_a = []
joukko_a_puute = tavoite
ok = True
while joukko_a_puute > 0:
for i in range(len(luvut)-1, -1, -1):
if luvut[i] <= joukko_a_puute:
v = luvut.pop(i)
joukko_a.append(v)
joukko_a_puute -= v
break
else:
print("NO")
ok = False
break
if not ok:
continue
joukko_b = []
joukko_b_puute = tavoite
while joukko_b_puute > 0:
for i in range(len(luvut) -1, -1, -1):
if luvut[i] <= joukko_b_puute:
v = luvut.pop(i)
joukko_b.append(v)
joukko_b_puute -= v
break
else:
print("NO")
ok = False
break
if not ok:
continue
joukko_c = luvut
# tulokset:
print("YES")
print(len(joukko_a))
print(" ".join(map(str, joukko_a)))
print(len(joukko_b))
print(" ".join(map(str, joukko_b)))
print(len(joukko_c))
print(" ".join(map(str, joukko_c)))
else:
print("NO")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 104 564 563 562 561 560 559 558 55... Truncated |
