結果
問題 | No.1512 作文 |
ユーザー |
![]() |
提出日時 | 2021-05-21 22:21:49 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 259 ms / 2,000 ms |
コード長 | 452 bytes |
コンパイル時間 | 432 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 88,272 KB |
最終ジャッジ日時 | 2024-10-10 09:07:09 |
合計ジャッジ時間 | 5,704 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 38 |
ソースコード
from bisect import bisect_right n = int(input()) memo = [[] for _ in range(26)] dp = [0] * 26 atode = 0 for _ in range(n): s = list(input()) if sorted(s) == s: num1 = ord(s[0]) - ord("a") num2 = ord(s[-1]) - ord("a") memo[num1].append((num2, len(s))) for i in range(26): memo[i].sort() dp[i] = max(dp[: (i + 1)]) for a, b in memo[i]: dp[a] = max(dp[a], dp[i] + b) # print(dp) print(max(dp))