費伯有兩條紙帶,分別記為 $A$ 和 $B$。每條紙帶上都印著一排英文字母。我們用 $|A|$ 和 $|B|$ 分別表示紙帶 $A$ 和 $B$ 上字母的數量。
他想把兩條紙帶接成一個圈。接法是先把 $B$ 的尾端疊到 $A$ 的開頭,再把 $A$ 的尾端疊到 $B$ 的開頭。疊在一起的地方,兩條紙帶上的字母必須完全相同,接起來才不會突兀。
第一段重疊是 $B$ 結尾的一段配上 $A$ 開頭的一段。第二段重疊則是 $A$ 結尾的一段配上 $B$ 開頭的一段。兩段重疊都可以是空的,但為了接成圈,任何一段重疊都不能用掉某一條紙帶上的全部字母。一條紙帶上的每個字母只能用來重疊一次,因此同一條紙帶上的兩段重疊不能共用任何字母(可以緊鄰)。
費伯希望重疊的字母越多越好。請問兩段重疊的總長度最多是多少?
第一行有一個字串 $A$,代表第一條紙帶上由左到右的符號。
第二行有一個字串 $B$,代表第二條紙帶上由左到右的符號。
輸出一個整數,代表兩段重疊總共最多能疊起幾個符號。
terminal alter
5
zzzz zz
2
範測 1 解釋:
$A$ 開頭與 $B$ 結尾的 ter 可以疊在一起,$B$ 開頭與 $A$ 結尾的 al 可以疊在一起,總長度為 $5$。
範測 2 解釋:
$A$ 開頭與 $B$ 結尾的 z 可以疊在一起,$B$ 開頭與 $A$ 結尾的 z 可以疊在一起,總長度為 $2$。
2026 YTP 高中組決賽 p4
| No. | Testdata Range | Constraints | Score |
|---|---|---|---|
| 1 | 0~1 | 範例測試資料 | 0 |
| 2 | 2~9 | $A = B$ | 3 |
| 3 | 0~1, 10~19 | $|A|, |B| \leq 5000$ | 3 |
| 4 | 0~28 | 無額外限制 | 9 |