結果
問題 | No.1512 作文 |
ユーザー |
|
提出日時 | 2021-05-22 08:55:19 |
言語 | Kuin (KuinC++ v.2021.9.17) |
結果 |
AC
|
実行時間 | 47 ms / 2,000 ms |
コード長 | 874 bytes |
コンパイル時間 | 2,644 ms |
コンパイル使用メモリ | 146,460 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-16 12:33:05 |
合計ジャッジ時間 | 3,974 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 38 |
ソースコード
func main() var n: int :: cui@inputInt() var map: dict<int, int> :: #dict<int, int> for(1, n) var s: []char :: cui@input() var cStart: int var cEnd: int var len: int do f(s, &cStart, &cEnd, &len) if(len <> 0) var id: int :: cStart + cEnd * 26 if(cStart = cEnd) do map.add(id, map.get(id, &) + len) else do map.add(id, [map.get(id, &), len].max()) end if end if func f(s: []char, cStart: &int, cEnd: &int, len: &int) for i(1, ^s - 1) if(s[i] < s[i - 1]) do len :: 0 ret end if end for do cStart :: s[0] $ int - 'a' $ int do cEnd :: s[^s - 1] $ int - 'a' $ int do len :: ^s end func end for var dp: []int :: #[26]int for cs(0, 25) for ce(cs, 25) do dp[ce] :: [dp[ce], dp[cs] + map.get(cs + ce * 26, &)].max() end for end for var ans: int :: dp[25] do cui@print("\{ans}\n") end func