結果
問題 |
No.1512 作文
|
ユーザー |
|
提出日時 | 2022-03-12 14:07:47 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 122 ms / 2,000 ms |
コード長 | 567 bytes |
コンパイル時間 | 186 ms |
コンパイル使用メモリ | 82,344 KB |
実行使用メモリ | 76,920 KB |
最終ジャッジ日時 | 2024-09-16 20:42:08 |
合計ジャッジ時間 | 4,822 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 38 |
ソースコード
N = int(input()) dat = [[0] * 26 for _ in range(26)] for _ in range(N): S = input() flag = True for i in range(len(S) - 1): if S[i] > S[i+1]: flag = False break if flag: c = ord(S[0]) - ord('a') cc = ord(S[-1]) - ord('a') if c == cc: dat[c][c] += len(S) else: dat[c][cc] = max(dat[c][cc],len(S)) dp = [0] * 26 dp[0] = dat[0][0] for i in range(26): for k in range(i+1,26): dp[k] = max(dp[k],dp[i] + dat[i][k] + dat[k][k]) print(max(dp))