結果
| 問題 |
No.2316 Freight Train
|
| コンテスト | |
| ユーザー |
ID 21712
|
| 提出日時 | 2025-05-06 01:39:50 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 318 ms / 2,000 ms |
| コード長 | 637 bytes |
| コンパイル時間 | 12,659 ms |
| コンパイル使用メモリ | 246,896 KB |
| 実行使用メモリ | 11,404 KB |
| 最終ジャッジ日時 | 2025-05-06 01:40:12 |
| 合計ジャッジ時間 | 20,432 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 26 |
ソースコード
package main
import . "fmt"
import . "os"
import bf "bufio"
func main() {
rd := bf.NewReader(Stdin)
wr := bf.NewWriter(Stdout)
defer wr.Flush()
var n, q int
Fscan(rd,&n,&q)
p := make([]int, n+1)
for i := range p[1:] {
Fscan(rd, &p[i+1])
}
id := 0
g := make([]int, n+n)
m := make([]int, n+1)
for i, e := range p[1:] {
if m[i+1] > 0 {
continue
}
id++
g[id] = id
m[i+1] = id
for e > 0 && m[e] == 0 {
m[e] = id
e = p[e]
}
if e > 0 {
g[id] = g[m[e]]
}
}
for ; q > 0; q-- {
var a, b int
Fscan(rd,&a,&b)
if g[m[a]] == g[m[b]] {
Fprintln(wr,"Yes")
} else {
Fprintln(wr,"No")
}
}
}
ID 21712