結果
| 問題 |
No.1 道のショートカット
|
| コンテスト | |
| ユーザー |
wreulicke
|
| 提出日時 | 2016-03-13 16:54:00 |
| 言語 | Go (1.23.4) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,232 bytes |
| コンパイル時間 | 15,731 ms |
| コンパイル使用メモリ | 222,680 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-07-08 04:23:39 |
| 合計ジャッジ時間 | 13,840 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | RE * 4 |
| other | AC * 2 RE * 38 |
ソースコード
package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
var sc = bufio.NewScanner(os.Stdin)
func nextInt() int {
sc.Scan()
i, _ := strconv.Atoi(sc.Text())
return i
}
func get(n int) []int {
inputs :=
make([]int, n)
for index := range inputs {
inputs[index] = nextInt()
}
return inputs
}
//
// func getInput() (int, int) {
// var a, b int
// fmt.Scan(&a)
// fmt.Scan(&b)
// return a, b
// }
type Road struct {
cost int
timecost int
}
func getAnswer() int8 {
return -1
}
func getRoads(n int, s []int, t []int, y []int, m []int) [][]Road {
r := make([][]Road, n)
for i := 0; i < n; i++ {
r[i] = make([]Road, n)
}
for i := range s {
r[s[i]-1][t[i]-1] = Road{y[i], m[i]}
}
return r
}
func main() {
sc.Split(bufio.ScanWords)
n, c, v := nextInt(), nextInt(), nextInt()
s, t, y, m := get(v), get(v), get(v), get(v)
roads := getRoads(n, s, t, y, m)
var position, total int
for i := 0; i < n; i++ {
var r *Road
for to, road := range roads[position] {
if road.cost == 0 {
continue
}
if r.cost > road.cost && total+r.cost < c {
r = &road
position = to
total += r.cost
}
}
}
if c > total && position == n-1 {
fmt.Println(total)
} else {
fmt.Println(-1)
}
}
wreulicke