結果

問題 No.1005 BOT対策
ユーザー ID 21712
提出日時 2025-01-01 18:47:27
言語 Go
(1.23.4)
結果
WA  
実行時間 -
コード長 1,019 bytes
コンパイル時間 12,156 ms
コンパイル使用メモリ 238,388 KB
実行使用メモリ 7,772 KB
最終ジャッジ日時 2025-01-01 18:47:41
合計ジャッジ時間 11,975 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 21 WA * 6
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

package main
import . "fmt"
import . "slices"
func min(a, b int) int {
if a < b {
return a
}
return b
}
func main() {
var s, t string
Scan(&s, &t)
bs := []byte(s)
bt := []byte(t)
if len(t) > len(s) {
Println(0)
return
}
if len(t) == 1 {
if Contains(bs, bt[0]) {
Println(-1)
} else {
Println(0)
}
return
}
const X = 1e9
dp := make([][]int, len(bs)+1)
for i := range dp {
dp[i] = make([]int, len(bt)+1)
for j := range dp[i] {
dp[i][j] = X
}
}
dp[0][0] = 0
for i, sc := range bs {
for _, v := range dp[i][1:] {
if sc == bt[0] {
dp[i][1] = min(dp[i][1], v+1)
} else {
dp[i][0] = min(dp[i][0], v+1)
}
}
// Println(i,":",dp[i])
cnt := 0
for j, tc := range bt {
if sc == tc {
dp[i+1][j+1] = min(dp[i+1][j+1], dp[i][j])
cnt++
} else if cnt == 0 {
dp[i+1][0] = min(dp[i+1][0], dp[i][j])
}
}
// Println(i+1,":",dp[i+1])
}
ans := Min(dp[len(bs)][:len(bt)])
if ans < X {
Println(ans)
} else {
Println(-1)
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0