卬高杯
提出id | 提出時刻 | ユーザー名 | 問題 | 言語 | 判定状況 | 判定 | 実行時間 |
---|---|---|---|---|---|---|---|
114984 | 2023-10-25 09:05:46 | loop0919 | H | python | 19/19 | TLE | 2003 |
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