結果
| 問題 |
No.2316 Freight Train
|
| コンテスト | |
| ユーザー |
ID 21712
|
| 提出日時 | 2025-05-06 01:38:20 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 605 ms / 2,000 ms |
| コード長 | 583 bytes |
| コンパイル時間 | 11,697 ms |
| コンパイル使用メモリ | 236,308 KB |
| 実行使用メモリ | 11,528 KB |
| 最終ジャッジ日時 | 2025-05-06 01:38:49 |
| 合計ジャッジ時間 | 28,373 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 26 |
ソースコード
package main
import . "fmt"
import . "os"
import bf "bufio"
func main() {
rd := bf.NewReader(Stdin)
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]] {
Println("Yes")
} else {
Println("No")
}
}
}
ID 21712