卬高杯
提出id | 提出時刻 | ユーザー名 | 問題 | 言語 | 判定状況 | 判定 | 実行時間 |
---|---|---|---|---|---|---|---|
114993 | 2023-10-25 09:28:27 | loop0919 | H | python | 19/19 | AC | 536 |
from string import ascii_letters
from collections import defaultdict
ascii_index = {c : i for i, c in enumerate(ascii_letters)}
ascii_set = set(ascii_letters)
N = int(input())
S = input().split()
dp = [defaultdict(int) for _ in range(1<<N)]
for bit in range(1<<N):
for i, s in enumerate(S):
if (bit >> i) & 1 == 1:
continue
bit_next = bit | (1<<i)
dp[bit_next][s[-1]] = max(dp[bit_next][s[-1]], dp[bit][s[0]] + len(s))
ans = 0
for k, v in dp[-1].items():
ans = max(ans, v)
print(ans)
sample1.txt AC 19 sample2.txt AC 21 sample3.txt AC 20 case1.txt AC 536 case2.txt AC 508 case3.txt AC 528 case4.txt AC 518 case5.txt AC 506 case6.txt AC 471 case7.txt AC 499 case8.txt AC 19 case9.txt AC 52 case10.txt AC 32 case11.txt AC 19 case12.txt AC 29 case13.txt AC 56 case14.txt AC 19 case15.txt AC 34 case16.txt AC 521 536 AC