CF926H Endless Roses Most Beautiful

题目描述

Arkady 决定为他的女朋友买玫瑰花。 一家花店有白色、橙色和红色的玫瑰,总共有 $n$ 朵。Arkady 认为红玫瑰和白玫瑰不适合放在一起,因此他不会购买同时包含红玫瑰和白玫瑰的花束。此外,Arkady 也不会购买所有玫瑰颜色都相同的花束。 Arkady 想要买恰好 $k$ 朵玫瑰。对于店里的每一朵玫瑰,他都知道它的美丽值和颜色:第 $i$ 朵玫瑰的美丽值为 $b_{i}$,颜色为 $c_{i}$('W' 表示白玫瑰,'O' 表示橙玫瑰,'R' 表示红玫瑰)。 请计算在满足上述条件的情况下,Arkady 能买到的美丽值总和最大的 $k$ 朵玫瑰花束的美丽值总和。如果无法组成这样的花束,输出 $-1$。

输入格式

第一行包含两个整数 $n$ 和 $k$($1 \leq k \leq n \leq 200000$),分别表示玫瑰的总数和 Arkady 想要购买的玫瑰数量。 第二行包含 $n$ 个整数 $b_{1}, b_{2}, \ldots, b_{n}$($1 \leq b_{i} \leq 10000$),其中 $b_{i}$ 表示第 $i$ 朵玫瑰的美丽值。 第三行包含一个长度为 $n$ 的字符串 $c$,由大写英文字母 'W'、'O' 和 'R' 组成,其中 $c_{i}$ 表示第 $i$ 朵玫瑰的颜色:'W' 表示白色,'O' 表示橙色,'R' 表示红色。

输出格式

输出满足条件的 $k$ 朵玫瑰花束的最大美丽值总和。如果无法组成这样的花束,输出 $-1$。

说明/提示

在第一个样例中,Arkady 想买 $3$ 朵玫瑰。他可以例如买下两朵红玫瑰(它们的编号是 $1$ 和 $2$,美丽值总和为 $7$),再加上一朵橙玫瑰(编号为 $3$,美丽值为 $4$)。这样花束的美丽值总和为 $11$。 在第二个样例中,Arkady 无法买到满足条件的花束,因为所有玫瑰颜色都相同。 由 ChatGPT 4.1 翻译