秋祭 | 静岡高校工学部



卬高杯


提出詳細

提出id提出時刻ユーザー名問題言語判定状況判定実行時間
1149882023-10-25 09:18:04loop0919Hpython19/19RE666

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