秋祭 | 静岡高校工学部



卬高杯


提出詳細

提出id提出時刻ユーザー名問題言語判定状況判定実行時間
1149932023-10-25 09:28:27loop0919Hpython19/19AC536

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