CF2087E.Color the Arrows
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有 n 个箭头依次画在一条纸带上,编号从 1 到 n。每个箭头要么指向左边,要么指向右边。最初,所有箭头都被涂成蓝色。
每次操作,你可以将一个蓝色箭头重新涂成红色。第一次操作时,你可以选择任意一个箭头。之后的每一次操作,你只能选择上一次操作所涂箭头所指方向上的箭头。如果上一次涂色的箭头是左箭头,那么这次必须选择编号比上一次小的箭头;如果上一次是右箭头,则必须选择编号比上一次大的箭头。注意,箭头不需要相邻。
每个箭头被涂成红色时都有一个整数奖励(可能为负、为零或为正)。
最终得分为所有被涂成红色的箭头的奖励之和。你可以进行任意次数的操作(包括零次),问最大得分是多少。
输入格式
第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。
每个测试用例的第一行包含一个整数 n(1≤n≤3×105),表示箭头的数量。
第二行是一个长度为 n 的字符串,仅包含字符 '<' 和 '>',分别表示箭头指向左或右。
第三行包含 n 个整数 c1,c2,…,cn(−109≤ci≤109),表示每个箭头被涂成红色时的奖励。
输入的额外限制:所有测试用例中 n 的总和不超过 3×105。
输出格式
对于每个测试用例,输出一个整数,表示在允许进行任意次数操作(包括零次)的情况下,能够获得的最大得分。
输入输出样例
输入#1
5 3 <>> 5 4 6 5 <><>> 5 -2 4 -3 7 2 >> -1 -2 8 >>>><<<< 1 -1 1 -1 1 -1 1 -1 5 ><<<> -1 100 100 100 100
输出#1
10 9 0 4 399
说明/提示
在第一个测试用例中,你可以先将第 2 个箭头涂成红色。这个箭头指向右边,所以下一步只能选择它右边的箭头。接着将第 3 个箭头涂成红色。这个箭头也指向右边,因此不能再继续操作。答案为 c2+c3=4+6=10。
在第二个测试用例中,你可以依次将第 3 个和第 1 个箭头涂成红色。
在第三个测试用例中,最优策略是不涂任何箭头,这样得分为 0,因为涂任何一个箭头都会导致总得分为负。
在第四个测试用例中,可以按顺序将第 3,7,1,5 个箭头涂成红色。
在第五个测试用例中,可以按顺序将第 4,3,2,1,5 个箭头涂成红色。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?