卬高杯
提出id | 提出時刻 | ユーザー名 | 問題 | 言語 | 判定状況 | 判定 | 実行時間 |
---|---|---|---|---|---|---|---|
114992 | 2023-10-25 09:26:09 | loop0919 | H | python | 19/19 | WA | 663 |
from string import ascii_letters
ascii_index = {c : i for i, c in enumerate(ascii_letters)}
ascii_set = set(ascii_letters)
N = int(input())
S = input().split()
for s in S:
if all(c in ascii_set for c in s):
pass
else:
print("-1")
exit()
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 25 sample3.txt AC 20 case1.txt AC 643 case2.txt AC 655 case3.txt AC 645 case4.txt AC 658 case5.txt AC 618 case6.txt AC 624 case7.txt AC 626 case8.txt WA 19 case9.txt WA 23 case10.txt WA 28 case11.txt WA 29 case12.txt WA 20 case13.txt WA 19 case14.txt WA 23 case15.txt WA 28 case16.txt AC 663 663 WA