結果
問題 |
No.1512 作文
|
ユーザー |
![]() |
提出日時 | 2025-03-31 17:24:44 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 718 bytes |
コンパイル時間 | 531 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 119,068 KB |
最終ジャッジ日時 | 2025-03-31 17:25:09 |
合計ジャッジ時間 | 5,875 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 21 WA * 17 |
ソースコード
n = int(input()) good_strings = [] for _ in range(n): s = input().strip() is_good = True for i in range(1, len(s)): if s[i] < s[i-1]: is_good = False break if is_good and len(s) > 0: # Ensure length is at least 1 as per input constraints first = s[0] last = s[-1] length = len(s) good_strings.append((first, last, length)) dp = [0] * 26 for first, last, length in good_strings: f = ord(first) - ord('a') l = ord(last) - ord('a') max_prev = 0 for c in range(f + 1): if dp[c] > max_prev: max_prev = dp[c] new_val = max_prev + length if new_val > dp[l]: dp[l] = new_val print(max(dp))