結果
| 問題 | No.3735 Offbeat Permutation Tree |
| コンテスト | |
| ユーザー |
kidodesu
|
| 提出日時 | 2026-09-19 17:30:43 |
| 言語 | PyPy3 (7.3.23 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 142 ms / 2,000 ms |
| + 15µs | |
| コード長 | 1,767 bytes |
| 記録 | |
| コンパイル時間 | 64 ms |
| コンパイル使用メモリ | 81,284 KB |
| 実行使用メモリ | 132,364 KB |
| 最終ジャッジ日時 | 2026-09-19 17:30:54 |
| 合計ジャッジ時間 | 6,520 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge4_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 35 |
ソースコード
def main():
n = int(input())
if n <= 3:
print(-1)
return
Ans = [[[0, 0, 0, 0] for _ in range(n)] for _ in range(n)]
rep = []
if n % 2:
l = n//2-2
r = n//2+3
X0 = [[0, 1], [0, 3], [1, 0], [2, 1], [3, 2], [3, 3], [4, 0], [4, 1], [4, 2]]
X1 = [[0, 1], [0, 2], [0, 3], [0, 4], [1, 0], [1, 3], [1, 4], [2, 0], [2, 1], [2, 2], [2, 4], [3, 0], [3, 3]]
else:
l = n//2-2
r = n//2+2
X0 = [[0, 1], [0, 2], [1, 0], [1, 2], [2, 1], [2, 2], [3, 0], [3, 1]]
X1 = [[0, 1], [0, 3], [1, 0], [2, 0], [2, 2]]
for xx in X0:
y, x = xx
rep.append(((l+y)*n+l+x, (l+y)*n+l+x+1))
for xx in X1:
y, x = xx
rep.append(((l+y)*n+l+x, (l+y)*n+l+x+n))
l -= 1
r += 1
while 0 <= l:
for y0 in range(l, r-1):
if y0 != l:
rep.append((y0*n+l, y0*n+l+n))
if y0 != r-2:
rep.append((y0*n+r-1, y0*n+r-1+n))
for x0 in range(l, r-1):
if x0 != l:
rep.append((l*n+x0, l*n+x0+1))
if x0 != r-2:
rep.append(((r-1)*n+x0, (r-1)*n+x0+1))
rep.append((l*n+l+1, l*n+l+1+n))
rep.append(((r-1)*n+r-2, (r-1)*n+r-2-n))
rep.append(((l+2)*n+l, (l+2)*n+l+1))
rep.append(((r-3)*n+r-1, (r-3)*n+r-2))
l -= 1
r += 1
rep.append((0, n))
rep.append(((n-2)*n+n-1, (n-1)*n+n-1))
for u, v in rep:
print(u+1, v+1)
return
from atcoder.dsu import DSU
uf = DSU(n*n)
for u, v in rep:
if uf.same(u, v):
print("NOOO")
print(u//n, u%n)
print(v//n, v%n)
uf.merge(u, v)
print(len(uf.groups()))
#print(uf.groups())
main()
kidodesu