卬高杯
提出id | 提出時刻 | ユーザー名 | 問題 | 言語 | 判定状況 | 判定 | 実行時間 |
---|---|---|---|---|---|---|---|
114987 | 2023-10-25 09:09:38 | loop0919 | H | python | 19/19 | RE | 708 |
from string import ascii_letters
ascii_index = {c : i for i, c in enumerate(ascii_letters)}
N = int(input())
S = input().split()
dp = [[0 for _ in range(len(ascii_letters))] for _ in range(1<<N)]
for bit in range(1<<N):
for i, s in enumerate(S):
if (bit >> i) & 1 == 1:
continue
j = ascii_index[s[0]]
bit_next = bit | (1<<i)
idx = ascii_index[s[-1]]
dp[bit_next][idx] = max(dp[bit_next][idx], dp[bit][j] + len(s))
print(max(max(row) for row in dp))
sample1.txt AC 19 sample2.txt AC 25 sample3.txt AC 22 case1.txt AC 701 case2.txt AC 665 case3.txt AC 667 case4.txt AC 680 case5.txt AC 667 case6.txt AC 657 case7.txt AC 708 case8.txt RE 74 case9.txt RE 84 case10.txt RE 80 case11.txt AC 19 case12.txt RE 76 case13.txt RE 83 case14.txt RE 74 case15.txt RE 75 case16.txt AC 677 708 RE