結果
| 問題 |
No.1061 素敵な数列
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-05-25 14:43:58 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,668 bytes |
| コンパイル時間 | 224 ms |
| コンパイル使用メモリ | 82,176 KB |
| 実行使用メモリ | 99,072 KB |
| 最終ジャッジ日時 | 2024-10-13 02:04:18 |
| 合計ジャッジ時間 | 8,527 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 15 RE * 18 |
ソースコード
#!/usr/bin/env python3
import sys
readline = sys.stdin.buffer.readline
sys.setrecursionlimit(10 ** 7)
# The author read the editorial.
def join_b(a, b):
ret = a.copy()
last = ret.pop()
ret.append(b.pop())
ret.append(last)
for elem in reversed(b):
ret.append(elem)
return ret
def make_a(n):
assert n != 2
if n == 0:
return []
if n % 2 == 1:
if n == 5:
a = [3, 4, 2, 2, 3, 3, 2, 4, 4]
b = make_b(1)
return join_b(a, b)
a = []
for i in range(n // 2, n):
a.append(i)
for i in range(n // 2, n):
a.append(i)
a.append(i)
b = make_a(n // 2)
return a + b
assert n % 2 == 0
a = []
for i in range(n // 2, n):
a.append(i)
a.append(n - 1)
for i in range(n // 2, n - 1):
a.append(i)
a.append(i)
a.append(n - 1)
b = make_b(n // 2)
return join_b(a, b)
def make_b(n):
assert n > 0
if n % 2 == 1:
a = []
for i in range(n // 2, n):
a.append(i)
for i in range(n // 2, n):
a.append(i)
a.append(i)
b = make_b(n // 2)
return a + b
assert n % 2 == 0
a = []
for i in range(n // 2, n):
a.append(i)
a.append(n - 1)
for i in range(n // 2, n - 1):
a.append(i)
a.append(i)
a.append(n - 1)
b = make_a(n // 2)
return b + a
n = int(readline())
if n == 2:
print(-1)
exit()
ans = make_a(n)
for i in range(3 * n):
print(ans[i], end='')
if i == 3 * n - 1:
print()
else:
print(' ', end='')