結果
問題 |
No.3012 岩井星人グラフ
|
ユーザー |
![]() |
提出日時 | 2025-01-25 15:47:41 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,197 bytes |
コンパイル時間 | 570 ms |
コンパイル使用メモリ | 12,160 KB |
実行使用メモリ | 818,048 KB |
最終ジャッジ日時 | 2025-01-25 23:48:20 |
合計ジャッジ時間 | 28,459 ms |
ジャッジサーバーID (参考情報) |
judge6 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 8 TLE * 1 MLE * 14 |
ソースコード
from collections import * from itertools import * from functools import cache, partial from pprint import pprint import sys from typing import Any, Final try: from icecream import ic except ImportError: # Graceful fallback if IceCream isn't installed. ic = lambda *a: None if not a else (a[0] if len(a) == 1 else a) # noqa debug = partial(print, file=sys.stderr) dpprint = partial(pprint, stream=sys.stderr) sys.setrecursionlimit(10**6) MOD = 998244353 X, Y = map(int, input().split()) # ノードの数 N = X * Y # ic(X, Y, N) # N x N の隣接行列を作る D = [[0] * N for _ in range(N)] for i in range(0, N - 1, Y): # i - i + 1 - i + 2 - i + 3 ... + i + Y - 1 とパスをつなぐ for j in range(Y - 1): # ic(i + j, i + j + 1) D[i + j][i + j + 1] = 1 D[i + j + 1][i + j] = 1 for i in range(0, N - 1, Y): # i - i + Y - i + 2Y とパスをつなぐ u = i v = (i + Y) % N # ic(u, v) D[u][v] = 1 D[v][u] = 1 # ic(D) # 隣接行列からグラフ情報を出力する M = sum([sum(d) for d in D]) // 2 print(N, M) for i in range(N): for j in range(i + 1, N): if D[i][j] == 1: print(i + 1, j + 1)