秋祭 | 静岡高校工学部



卬高杯


提出詳細

提出id提出時刻ユーザー名問題言語判定状況判定実行時間
1149832023-10-25 08:56:50loop0919Hpython19/19RE2003

from string import 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<<j)
                idx = ascii_letters.index(s[-1])
                dp[bit_next][idx] = max(dp[bit_next][idx], dp[bit][i] + len(s))

print(max(max(row) for row in dp))

sample1.txt AC 20
sample2.txt WA 31
sample3.txt AC 33
case1.txt RE 230
case2.txt RE 231
case3.txt RE 230
case4.txt RE 231
case5.txt RE 230
case6.txt TLE 2003
case7.txt RE 229
case8.txt RE 74
case9.txt RE 85
case10.txt RE 79
case11.txt RE 76
case12.txt RE 75
case13.txt RE 80
case14.txt RE 74
case15.txt RE 76
case16.txt RE 233
2003 RE
Traceback (most recent call last):
  File "/var/www/judge/submit2/114983/a.py", line 16, in <module>
    dp[bit_next][idx] = max(dp[bit_next][idx], dp[bit][i] + len(s))
IndexError: list index out of range