卬高杯
提出id | 提出時刻 | ユーザー名 | 問題 | 言語 | 判定状況 | 判定 | 実行時間 |
---|---|---|---|---|---|---|---|
114988 | 2023-10-25 09:18:04 | loop0919 | H | python | 19/19 | RE | 666 |
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(dp[(1<<N)-1]))
sample1.txt AC 19 sample2.txt AC 27 sample3.txt AC 21 case1.txt AC 666 case2.txt AC 624 case3.txt AC 666 case4.txt AC 659 case5.txt AC 642 case6.txt AC 618 case7.txt AC 619 case8.txt RE 75 case9.txt RE 85 case10.txt RE 79 case11.txt AC 19 case12.txt RE 79 case13.txt RE 81 case14.txt RE 75 case15.txt RE 74 case16.txt AC 631 666 RE