秋祭 | 静岡高校工学部



卬高杯


提出詳細

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

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
        for j, c in enumerate(ascii_letters):
            if s[0] == c:
                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(max(row) for row in dp))

sample1.txt AC 20
sample2.txt AC 24
sample3.txt AC 20
case1.txt TLE 2003
case2.txt TLE 2003
case3.txt TLE 2003
case4.txt TLE 2003
case5.txt TLE 2003
case6.txt TLE 2003
case7.txt TLE 2003
case8.txt AC 22
case9.txt RE 84
case10.txt RE 80
case11.txt AC 20
case12.txt RE 76
case13.txt RE 79
case14.txt AC 23
case15.txt RE 82
case16.txt TLE 2003
2003 TLE