結果
問題 | No.2089 置換の符号 |
ユーザー |
|
提出日時 | 2022-09-30 21:43:08 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 104 ms / 2,000 ms |
コード長 | 474 bytes |
コンパイル時間 | 52 ms |
コンパイル使用メモリ | 7,296 KB |
実行使用メモリ | 12,672 KB |
最終ジャッジ日時 | 2024-12-22 22:57:29 |
合計ジャッジ時間 | 4,455 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 33 |
コンパイルメッセージ
Syntax OK
ソースコード
N = gets.to_i A = gets.split.map(&:to_i) graph = Array.new(N) { [] } N.times do |u| v = A[u] - 1 graph[u] << v graph[v] << u end count = 0 visited = [false] * N N.times do |s| next if visited[s] visited[s] = true count += 1 stack = [s] while (u = stack.pop) count += 1 graph[u].each do |v| next if visited[v] visited[v] = true stack << v end end end puts count.even? ? 1 : -1