結果

問題 No.2428 Returning Shuffle
ユーザー tomerun
提出日時 2023-08-18 21:19:34
言語 Crystal
(1.14.0)
結果
RE  
実行時間 -
コード長 432 bytes
コンパイル時間 13,258 ms
コンパイル使用メモリ 294,764 KB
実行使用メモリ 66,944 KB
最終ジャッジ日時 2024-11-28 05:24:05
合計ジャッジ時間 16,048 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 18 RE * 5
権限があれば一括ダウンロードができます

ソースコード

diff #

n, m = read_line.split.map(&.to_i)
p = (0...n).to_a
m.times do
  s = read_line.split.map { |v| v.to_i - 1 }
  s.shift
  tmp = p[s[-1]]
  (s.size - 2).downto(0) do |i|
    p[s[i + 1]] = p[s[i]]
  end
  p[s[0]] = tmp
end
visited = Array.new(n, false)
ans = 1i64
n.times do |i|
  next if visited[i]
  cur = i
  len = 0
  while !visited[cur]
    visited[cur] = true
    cur = p[cur]
    len += 1
  end
  ans = ans.lcm(len)
end
puts ans
0