秋祭 | 静岡高校工学部



卬高杯


提出詳細

提出id提出時刻ユーザー名問題言語判定状況判定実行時間
1149892023-10-25 09:20:46loop0919Hpython19/19RE691

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) + 1)] 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(ascii_index)
print(max(dp[(1<<N)-1]))

sample1.txt WA 19
sample2.txt WA 26
sample3.txt WA 26
case1.txt WA 648
case2.txt WA 629
case3.txt WA 680
case4.txt WA 657
case5.txt WA 691
case6.txt WA 639
case7.txt WA 655
case8.txt RE 75
case9.txt RE 85
case10.txt RE 80
case11.txt WA 19
case12.txt RE 75
case13.txt RE 80
case14.txt RE 75
case15.txt RE 75
case16.txt WA 639
691 RE