結果

問題 No.1512 作文
ユーザー gew1fw
提出日時 2025-06-12 14:15:02
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 818 bytes
コンパイル時間 215 ms
コンパイル使用メモリ 82,688 KB
実行使用メモリ 122,396 KB
最終ジャッジ日時 2025-06-12 14:15:11
合計ジャッジ時間 4,838 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 21 WA * 17
権限があれば一括ダウンロードができます

ソースコード

diff #

n = int(input())
filtered = []

for _ in range(n):
    s = input().strip()
    good = True
    for i in range(1, len(s)):
        if s[i] < s[i-1]:
            good = False
            break
    if good:
        f_char = s[0]
        l_char = s[-1]
        filtered.append((f_char, l_char, len(s)))

dp = [0] * 26
max_prefix = [0] * 26

for f_char, l_char, length in filtered:
    f = ord(f_char) - ord('a')
    l = ord(l_char) - ord('a')
    current_max_prev = max_prefix[f] if f >= 0 else 0
    candidate = current_max_prev + length
    if candidate > dp[l]:
        dp[l] = candidate
        # Recompute max_prefix
        current_max = dp[0]
        max_prefix[0] = current_max
        for i in range(1, 26):
            current_max = max(current_max, dp[i])
            max_prefix[i] = current_max

print(max(dp))
0