結果
問題 | No.1512 作文 |
ユーザー |
![]() |
提出日時 | 2025-06-12 14:15:57 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 816 bytes |
コンパイル時間 | 203 ms |
コンパイル使用メモリ | 82,316 KB |
実行使用メモリ | 122,912 KB |
最終ジャッジ日時 | 2025-06-12 14:16:03 |
合計ジャッジ時間 | 4,687 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 21 WA * 17 |
ソースコード
n = int(input()) good_strings = [] for _ in range(n): s = input().strip() valid = True for i in range(1, len(s)): if s[i] < s[i-1]: valid = False break if valid: first = s[0] last = s[-1] good_strings.append((first, last, len(s))) # Initialize DP and max_dp arrays dp = [0] * 26 max_dp = [0] * 26 for first, last, length in good_strings: s = ord(first) - ord('a') t = ord(last) - ord('a') current_max = max_dp[s] + length if current_max > dp[t]: dp[t] = current_max # Update max_dp current_max_val = dp[0] new_max_dp = [current_max_val] * 26 for c in range(1, 26): current_max_val = max(current_max_val, dp[c]) new_max_dp[c] = current_max_val max_dp = new_max_dp print(max_dp[-1])