传统题 文件IO:seq 1000ms 512MiB

序列构筑 (seq)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

序列构筑 (seq)

题目描述

Y 同学正在研究一种字符串序列的构筑方法。给定 NN 个不同的字符串 s1,s2,…,sNs_1, s_2, \dots, s_N,每个字符串 sis_i 都对应一个权值 pip_i。

Y 同学希望从这些字符串中挑选出若干个,组成一个序列 t1,t2,…,tkt_1, t_2, \dots, t_k,使得对于序列中任意相邻的两个字符串 tjt_j 与 tj+1t_{j+1} (1≤j<k1 \le j < k),均满足 tjt_j 是 tj+1t_{j+1} 的真前缀。

一个字符串 AA 是字符串 BB 的真前缀,当且仅当 AA 是 BB 的前缀且 A≠BA \neq B。

该序列的权值定义为序列中所有字符串的权值之和,即 ∑j=1kweight(tj)\sum_{j=1}^k \text{weight}(t_j)。请你帮助 Y 同学计算出能够构筑的序列权值的最大值。

输入格式

第一行包含一个整数 NN,表示候选字符串的数量。

接下来的 NN 行,每行包含一个字符串 sis_i 和一个整数 pip_i,中间用空格隔开。

输出格式

输出一行一个整数,表示序列权值的最大值。

样例

样例输入 #1

7
nefer 1
amun 3
nefertari 10
neferti 2
nefertem 4
nefertiti 9
amunra 10

样例输出 #1

13

数据范围与约定

对于 100%100\% 的数据,保证 1≤N≤1061 \le N \le 10^6,∑∣si∣≤106\sum \vert s_i \vert \le 10^6,1≤pi≤1091 \le p_i \le 10^9。所有字符串均由小写英文字母组成,且保证输入的 NN 个字符串互不相同。

测试点编号 分值 N≤N \le ∑∣si∣≤\sum \vert s_i \vert \le 特殊性质
1∼41 \sim 4 2020 10001000 无
5∼85 \sim 8 10610^6 特殊性质 A
9∼129 \sim 12 特殊性质 B
13∼1413 \sim 14 1010 10510^5 无
15∼2015 \sim 20 3030 10610^6
  • 特殊性质 A:所有字符串均仅由小写字母 a 组成。
  • 特殊性质 B:保证每个字符串的长度 ∣si∣≤5\vert s_i \vert \le 5。