結果

問題 No.1512 作文
ユーザー gew1fw
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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])
0