結果
| 問題 |
No.90 品物の並び替え
|
| コンテスト | |
| ユーザー |
tsuchinaga
|
| 提出日時 | 2019-03-08 14:51:51 |
| 言語 | Go (1.23.4) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 971 bytes |
| コンパイル時間 | 9,886 ms |
| コンパイル使用メモリ | 232,256 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-06-23 15:02:02 |
| 合計ジャッジ時間 | 10,479 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 3 WA * 6 |
ソースコード
package main
import (
"fmt"
)
func main() {
type Score struct {
i1, i2, s int
}
var n, m, i1, i2, s int
_, _ = fmt.Scan(&n, &m)
scores := make(map[int]Score)
for i := 0; i < m; i++ {
_, _ = fmt.Scan(&i1, &i2, &s)
scores[i1*10+i2] = Score{i1, i2, s}
}
list := []int{0}
total := 0
for i := 1; i < n; i++ { // 入れる数字
max := 0
maxJ := 0
for j := 0; j <= len(list); j++ { // 入れる位置
score := 0
for k := 0; k < len(list); k++ { // 入れた場合に得られるスコア計算
if k < j {
score += scores[list[k]*10+i].s
} else {
score += scores[i*10+list[k]].s
}
}
if max < score {
max = score
maxJ = j
}
}
// fmt.Println(list, i, max, maxJ, total)
total += max
switch maxJ {
case 0:
list = append([]int{i}, list...)
case len(list):
list = append(list, i)
default:
list = append(list[:maxJ-1], append([]int{i}, list[maxJ:]...)...)
}
}
fmt.Println(total)
}
tsuchinaga