結果
問題 | No.92 逃走経路 |
ユーザー |
|
提出日時 | 2016-03-03 16:45:04 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 5 ms / 5,000 ms |
コード長 | 1,123 bytes |
コンパイル時間 | 12,277 ms |
コンパイル使用メモリ | 236,884 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-10-10 23:27:59 |
合計ジャッジ時間 | 12,028 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
ソースコード
package mainimport ("bufio""fmt""os""strconv")var sc = bufio.NewScanner(os.Stdin)var rdr = bufio.NewReaderSize(os.Stdin, 1000000)func main() {sc.Split(bufio.ScanWords)n, m, k := nextInt(), nextInt(), nextInt()loads, towns := make([][3]int, 0, 1000), make([]bool, n+1)for i := 0; i < m; i++ {a, b, c := nextInt(), nextInt(), nextInt()loads = append(loads, [3]int{a, b, c})}times := make([]int, k)for i := range times {times[i] = nextInt()}for _, v := range loads {if v[2] == times[0] {towns[v[0]] = truetowns[v[1]] = true}}for _, c := range times[1:] {next := make([]bool, n+1)for _, v := range loads {if v[2] != c {continue}if towns[v[0]] {next[v[1]] = true}if towns[v[1]] {next[v[0]] = true}}towns = next}ans := make([]int, 0, 100)for i, v := range towns {if v {ans = append(ans, i)}}fmt.Println(len(ans))s := fmt.Sprint(ans)fmt.Println(s[1 : len(s)-1])}func nextLine() string {sc.Scan()return sc.Text()}func nextInt() int {i, _ := strconv.Atoi(nextLine())return i}