結果
| 問題 |
No.3341 Making Beautiful Graphs
|
| コンテスト | |
| ユーザー |
回転
|
| 提出日時 | 2025-11-13 22:54:48 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 87 ms / 2,000 ms |
| コード長 | 650 bytes |
| コンパイル時間 | 355 ms |
| コンパイル使用メモリ | 82,280 KB |
| 実行使用メモリ | 77,648 KB |
| 最終ジャッジ日時 | 2025-11-13 22:55:16 |
| 合計ジャッジ時間 | 6,786 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 50 |
ソースコード
N = int(input())
N2 = N**2
if(N2 <= 4):
print(-1)
exit()
edge = set()
for i in range(N2):
for di in [-(N-1)**2,-(N-1),(N-1),(N-1)**2]:
new = (i + di) % N2
a,b = min(i,new), max(i,new)
edge.add((a+1,b+1))
def check(N2, edge_list):
edge = [[] for _ in range(N2+1)]
for a,b in edge_list:
edge[a].append(b)
edge[b].append(a)
if(any(len(i) != 4 for i in edge[1:])):return False
for i in range(1,N2+1):
if(sum(edge[i]) % N2 != 4*i % N2):return False
return True
if(not check(N2,edge)):
print(-1)
else:
print(len(edge))
for i in sorted(edge):
print(*i)
回転