結果

問題 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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)
0