結果
問題 |
No.150 "良問"(良問とは言っていない
|
ユーザー |
![]() |
提出日時 | 2019-03-22 09:25:55 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 14 ms / 5,000 ms |
コード長 | 1,122 bytes |
コンパイル時間 | 13,202 ms |
コンパイル使用メモリ | 238,932 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-11 02:15:57 |
合計ジャッジ時間 | 14,294 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 20 |
ソースコード
package main import "fmt" func main() { var n int _, _ = fmt.Scan(&n) good := "good" problem := "problem" for i := 0; i < n; i++ { s := "" _, _ = fmt.Scan(&s) // goodへの書き換えに必要な手数の一覧 goodCost := make([]int, 0) for i := 0; i < len(s)-len(problem)-len(good)+1; i++ { d := 0 for j := range good { if good[j] != s[i+j] { d++ } } goodCost = append(goodCost, d) // fmt.Println(good, string(s[i:i+len(good)]), d) } // problemへの書き換えに必要な手数の一覧 problemCost := make([]int, 0) for i := len(good); i < len(s)-len(problem)+1; i++ { d := 0 for j := range problem { if problem[j] != s[i+j] { d++ } } problemCost = append(problemCost, d) // fmt.Println(problem, string(s[i:i+len(problem)]), d) } // 可能な組み合わせのうち最小となるものを出力 min := -1 for j := 0; j < len(goodCost); j++ { for k := j; k < len(problemCost); k++ { if min > goodCost[j]+problemCost[k] || min == -1 { min = goodCost[j] + problemCost[k] } } } fmt.Println(min) } }