AT_abc354_g [ABC354G] Select Strings

Description

[problemUrl]: https://atcoder.jp/contests/abc354/tasks/abc354_g $ N $ 個の英小文字からなる文字列 $ S_1,S_2,\ldots,S_N $ と $ N $ 個の正整数 $ A_1,A_2,\ldots,A_N $ があります。 ある $ \lbrace\ 1,2,\ldots,N\ \rbrace $ の部分集合 $ T $ は $ i,j\ \in\ T\ (i\ \neq\ j) $ で $ S_i $ が $ S_j $ の部分文字列となるような $ i,j $ の組がないとき**良い集合**であるといいます。 良い集合 $ T $ を選んだ時 $ \displaystyle\ \sum_{i\ \in\ T}\ A_i $ としてありえる値の最大値を求めてください。 部分文字列とは? $ S $ の**部分文字列**とは、$ S $ の先頭から $ 0 $ 文字以上、末尾から $ 0 $ 文字以上削除して得られる文字列のことをいいます。 例えば、`ab` は `abc` の部分文字列ですが、`ac` は `abc` の部分文字列ではありません。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ S_1 $ $ S_2 $ $ \vdots $ $ S_N $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $

Output Format

答えを出力せよ。

Explanation/Hint

### 制約 - $ 1\ \leq\ N\ \leq\ 100 $ - $ S_i $ は英小文字からなる文字列である - $ 1\ \leq\ |S_i| $ - $ |S_1|+|S_2|\ +\ \ldots\ +\ |S_N|\ \leq\ 5000 $ - $ 1\ \leq\ A_i\ \leq\ 10^9 $ ### Sample Explanation 1 良い集合 としてありえる $ T $ とそれぞれに対する $ \displaystyle\ \sum_{i\ \in\ T}\ A_i $ は以下の通りです。 - $ T\ =\ \lbrace\ 1\ \rbrace $ のとき $ \displaystyle\ \sum_{i\ \in\ T}\ A_i\ =\ 5 $ - $ T\ =\ \lbrace\ 2\ \rbrace $ のとき $ \displaystyle\ \sum_{i\ \in\ T}\ A_i\ =\ 2 $ - $ T\ =\ \lbrace\ 3\ \rbrace $ のとき $ \displaystyle\ \sum_{i\ \in\ T}\ A_i\ =\ 3 $ - $ T\ =\ \lbrace\ 4\ \rbrace $ のとき $ \displaystyle\ \sum_{i\ \in\ T}\ A_i\ =\ 4 $ - $ T\ =\ \lbrace\ 2,3\ \rbrace $ のとき $ \displaystyle\ \sum_{i\ \in\ T}\ A_i\ =\ 5 $ - $ T\ =\ \lbrace\ 2,4\ \rbrace $ のとき $ \displaystyle\ \sum_{i\ \in\ T}\ A_i\ =\ 6 $ このうち最大値は $ 6 $ なので、$ 6 $ を出力します。