結果
| 問題 | No.101 ぐるぐる!あみだくじ! | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2023-03-22 00:43:19 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 57 ms / 5,000 ms | 
| コード長 | 484 bytes | 
| コンパイル時間 | 165 ms | 
| コンパイル使用メモリ | 82,048 KB | 
| 実行使用メモリ | 62,080 KB | 
| 最終ジャッジ日時 | 2024-09-18 14:35:49 | 
| 合計ジャッジ時間 | 3,532 ms | 
| ジャッジサーバーID (参考情報) | judge2 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 37 | 
ソースコード
import math
n = int(input())
perm = [i for i in range(n)]
k = int(input())
for _ in range(k):
  x, y = map(int, input().split())
  x -= 1
  y -= 1
  perm[x], perm[y] = perm[y], perm[x]
parent = [None for _ in range(n)]
cnt = {}
for src in range(n):
  if not parent[src] is None:
    continue
  cur = src
  while parent[cur] is None:
    cnt[src] = cnt.get(src, 0) + 1
    parent[cur] = src
    cur = perm[cur]
ans = 1
for _, v in cnt.items():
  ans = math.lcm(ans, v)
print(ans)
            
            
            
        