#P7701. [CCC2014] 提前交卷

[CCC2014] 提前交卷

题目描述

你正在一个狭窄而又长的礼堂里考试,礼堂一共有 nn 排,标号从前到后分别为 11nn。每排有 66 个座位,左边 33 个,右边 33 个,中间是过道。每个座位都有一个从 A 到 F 的字母标识,其中最左的座位的标识是 A,最右的座位的标识是 F,过道在座位标识为 C 和 D 的座位之间,礼堂同时还有两个保密室,一个在最前面(第一排前面),一个在最后面(第 nn 排后面)。

礼堂里的每个座位一开始被刚好一个考生占用。然而,在考试过程中,mm 个不同的考生决定完成所有他们会做的题后依次离开礼堂。第 ii 个考生在座位 ricir_ic_i,其中 cic_i 是 A 到 F 的字母之一。当考生离开礼堂时,他们必须在任意一个保密室等待到考试结束。幸运的是,保密室能容下任意多的考生。

考生不仅关心试题本身,他们还关心怎么样可以最舒服的考试。因此,他们协作以最小化他们的不满度之和。一个考生的不满度的计算方式是 Ax+ByAx+By,其中 A,BA,B 为常数,xx 为去往保密室时经过的考生人数,具体将在下面详述,yy 是在考生进入保密室之前保密室内的人数。注意如果一个考生不离开他的考位,那么他的不满度为 00

当一个考生从一个考位走往保密室时,他在去往过道时必须先经过同排的考生,然后走过从这行到第一行或第 nn 行(取决于所选的保密室)的邻近过道的考生。注意走过空的座位不影响 xx 值。

你能帮助他们最小化他们的不满度之和吗?

输入格式

第一行四个整数 n,m,A,Bn,m,A,B,以空格分隔,分别表示礼堂内的排数、提前离开的考生数、不满度计算参数。

接下来 mm 行每行一个整数 rir_i 和一个字母 cic_i,其中 1in1\le i\le n

输出格式

输出一个整数,表示最小的不满度之和。

5 5 3 4
3E
1D
5C
1E
4A
55

提示

其中一个最优策略是,第一个提前离开的考生去最前面的保密室,经过 66 个考生(分别是 3D3C2D2C1D1C),不满度为 3×6+4×0=183\times6+4\times0=18。第二个提前离开的考生也去最前面的保密室,只经过 11 个考生,即 1C,然后他发现保密室里有 11 个考生,不满度为 77。第三个提前离开的考生去最后面的保密室,经过 11 个考生,不满度为 33。第四个提前离开的考生去最前面的保密室,经过 11 个考生(因为座位 1D 是空的),不满度为 1111。最后,第五个提前离开的考生去最后面的保密室,经过 44 个考生,发现保密室里有 11 个人,不满度为 1616。所有考生总的不满度为 5555

对于 60%60\% 的数据,1m50001\le m\le5000

对于 100%100\% 的数据,1n1051\le n\le 10^51m6n1\le m\le6n1A,B1091\le A,B\le 10^9