【CodeForces - 632B】Alice, Bob, Two Teams (预处理,思维,前缀和后缀和)

题干:

Alice and Bob are playing a game. The game involves splitting up game pieces into two teams. There are n pieces, and the i-th piece has a strength pi.

The way to split up game pieces is split into several steps:

  1. First, Alice will split the pieces into two different groups A and B. This can be seen as writing the assignment of teams of a piece in an n character string, where each character is A or B.
  2. Bob will then choose an arbitrary prefix or suffix of the string, and flip each character in that suffix (i.e. change A to B and B to A). He can do this step at most once.
  3. Alice will get all the pieces marked A and Bob will get all the pieces marked B.

The strength of a player is then the sum of strengths of the pieces in the group.

Given Alice's initial split into two teams, help Bob determine an optimal strategy. Return the maximum strength he can achieve.

Input

The first line contains integer n (1 ≤ n ≤ 5·105) — the number of game pieces.

The second line contains n integers pi (1 ≤ pi ≤ 109) — the strength of the i-th piece.

The third line contains n characters A or B — the assignment of teams after the first step (after Alice's step).

Output

Print the only integer a — the maximum strength Bob can achieve.

Examples

Input

5
1 2 3 4 5
ABABA

Output

11

Input

5
1 2 3 4 5
AAAAA

Output

15

Input

1
1
B

Output

1

Note

In the first sample Bob should flip the suffix of length one.

In the second sample Bob should flip the prefix or the suffix (here it is the same) of length 5.

In the third sample Bob should do nothing.

题目大意:

     A和B两个人玩游戏,给n个数,每个数对应一个 ' A ' 或 ' B ' , 现在B玩家可以选一个前缀或者一个后缀,把A变B,B变A,操作结束后,B玩家可以取走所有标号为 ' B ' 的数字,问B玩家可以取到的数字之和最大是多少? 

解题报告:

     看题目名称,猜是博弈?然而让你失望了,这题和A没有任何卵关系,,,先预处理出前缀A和B,后缀A和B,这四个数组。然后枚举每一个元素,维护翻这一位或者不翻这一位的最大值maxx,并且维护和ans的最大值,输出ans即可。

AC代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int MAX = 5e5 + 5; 
ll val[MAX];
ll a[MAX],b[MAX],A[MAX],B[MAX];
ll ans,maxx;
char s[MAX];
int main()
{int n;cin>>n;for(int i = 1; i<=n; i++) scanf("%lld",val+i);cin>>s+1;//prefix预处理 for(int i = 1; i<=n; i++) {if(s[i] == 'A') {a[i] = a[i-1] + val[i];b[i] = b[i-1];}else {a[i] = a[i-1];b[i] = b[i-1] + val[i];}}//suffix预处理for(int i = n; i>=1; i--) {if(s[i] == 'A') {A[i] = A[i+1] + val[i];B[i] = B[i+1];}else {A[i] = A[i+1];B[i] = B[i+1] + val[i];}} for(int i = 1; i<=n; i++) {maxx = max(b[i]+B[i+1],a[i] + B[i+1]);ans = max(ans,maxx);}for(int i = n; i>=1; i--) {maxx = max(b[i] + B[i+1],b[i] + A[i+1]);ans = max(ans,maxx);}printf("%lld\n",ans);return 0 ;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/441447.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql一张表1亿天数据_1亿条数据在PHP中实现Mysql数据库分表100张

转&#xff1a;1亿条数据在PHP中实现Mysql数据库分表100张http://php-z.com/thread-2115-1-1.html(出处: PHP-Z)当数据量猛增的时候&#xff0c;大家都会选择库表散列等等方式去优化数据读写速度。笔者做了一个简单的尝试&#xff0c;1亿条数据&#xff0c;分100张表。具体实现…

【POJ - 3273 】Monthly Expense (二分,最小最大值)

题干&#xff1a; Farmer John is an astounding accounting wizard and has realized he might run out of money to run the farm. He has already calculated and recorded the exact amount of money (1 ≤ moneyi ≤ 10,000) that he will need to spend each day over t…

Mysql8秒级加字段_Mysql8.0秒级加字段

Mysql 8.0版本合并了腾讯互娱数据库团队的Patch&#xff0c;可以实现秒级添加字段&#xff0c;这个功能可谓是mysql数据库攻城狮的福音&#xff0c;解决了之前5.6&#xff0c;5.7版本添加字段很高的运维成本。下面是验证mysql8.0版本秒级添加字段的过程首先用sysbench模拟一张1…

【HDU - 1009 】FatMouse' Trade (贪心)

题干&#xff1a; FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean. The warehouse has N rooms. The i-th room contains J[i] pounds of JavaBeans and requires F[i] pounds of ca…

lua进入压缩包_使用lua语言制作贪吃蛇游戏(love2d)(一)开发环境的搭建

本教程教大家使用lua制作一个贪吃蛇&#xff0c;游戏引擎使用love2d&#xff0c;因为它开源轻巧而且跨平台。1.开发环境搭建&#xff1a;windows系统&#xff1a;在windows系统下&#xff0c;首先我们进入官网www.love2d.org。love2d官网进入官网可以看到Download选项&#xff…

【CodeForces - 660C】Hard Process (尺取 或 二分+滑窗,前缀和预处理)

题干&#xff1a; You are given an array a with n elements. Each element of a is either 0 or 1. Lets denote the length of the longest subsegment of consecutive elements in a, consisting of only numbers one, as f(a). You can change no more than k zeroes to…

mysql rand() 子查询_MySQL ------ 子查询(十三)

查询&#xff08;query&#xff09;:任何SQL 都是查询&#xff0c;但此术语一般指select 语句子查询&#xff08;subquery&#xff09;:嵌套在查询中的查询&#xff0c;MySQL4.1 引入对子查询的支持。接下来得就比较有意思了&#xff0c;需要你对于表与表之间的关系有所了解&am…

【CodeForces - 616D 】Longest k-Good Segment (twopointer,尺取)

题干&#xff1a; The array a with n integers is given. Lets call the sequence of one or more consecutive elements in a segment. Also lets call the segment k-good if it contains no more than k different values. Find any longest k-good segment. As the inp…

centos 6.5 apache mysql php_CentOS 6.5系统安装配置LAMP(Apache+PHP5+MySQL)服务器环境

简单点的&#xff1a;1.关闭SELINUX&#xff1a;setenfo 0 暂时关闭2.安装Apache&#xff1a;yum install httpd3.安装MySQL&#xff1a;yum install mysql mysql-server4.安装PHP&#xff1a;yum install php5.相关的配置&#xff1a;PHP关联MySQL&#xff1b;httpd出错信息…

【HDU - 5585】Numbers (水题,数学,数论)

题干&#xff1a; There is a number N.You should output "YES" if N is a multiple of 2, 3 or 5,otherwise output "NO". Input There are multiple test cases, no more than 1000 cases. For each case,the line contains a integer N.(0<N<…

【HDU - 2255】奔小康赚大钱(KM算法模板,二分图最优匹配)

题干&#xff1a; 传说在遥远的地方有一个非常富裕的村落,有一天,村长决定进行制度改革&#xff1a;重新分配房子。 这可是一件大事,关系到人民的住房问题啊。村里共有n间房间,刚好有n家老百姓,考虑到每家都要有房住&#xff08;如果有老百姓没房子住的话&#xff0c;容易引起…

mysql 如何调用函数结果_MySQL自定义函数调用不出结果

自定义函数的代码&#xff1a;DROP FUNCTION IF EXISTS fn_HrStaffBase_GetNameFromidCarddelimiter //CREATE FUNCTION fn_HrStaffBase_GetNameFromidCard (a VARCHAR(30))RETURNS VARCHAR(50)beginreturn (SELECT staff_name FROM hr_staff_base where idCard a);END //--…

【CodeForces - 1066A~E】水题,模拟(有技巧),思维,题意难懂的模拟,二进制问题(有技巧)

A. 题目大意&#xff1a; x坐标上1~L有L个点都是整数&#xff0c;每v个长度就有一个灯亮着&#xff0c;但是有 [ l , r ] 这段区间上有列火车挡住了&#xff0c;问你能看到多少亮灯。 解题报告&#xff1a; 大水题啊&#xff0c;找几个样例就会发现需要特殊处理一下左边界恰好…

【CodeForces - 987C 】Three displays (dp,最长上升子序列类问题,三元组问题)

题干&#xff1a; It is the middle of 2018 and Maria Stepanovna, who lives outside Krasnokamensk (a town in Zabaikalsky region), wants to rent three displays to highlight an important problem. There are nn displays placed along a road, and the ii-th of th…

python中with open写csv文件_Python中的CSV文件使用with语句的方式详解

是否可以直接使用with语句与CSV文件&#xff1f;能够做这样的事情似乎很自然&#xff1a;import csvwith csv.reader(open("myfile.csv")) as reader:# do things with reader但是csv.reader不提供__enter__和__exit__方法,所以这不行.但是我可以分两步做&#xff1a…

【UVA - 11383】Claw Golden Tiger (二分图最优匹配,KM算法原理)

题干&#xff1a; 粘贴不过来。。。 题目大意&#xff1a; 500*500带权格子&#xff0c;每行每列要确定一个值&#xff0c;使row[i]col[j] > val[i][j]&#xff0c;要使所有row值和col值的和最小 输出每行的row[i],和每列的col[i]。 解题报告&#xff1a; 跑一边KM&#…

git object 很大_这才是真正的Git——Git内部原理

本文以一个具体例子结合动图介绍了Git的内部原理&#xff0c;包括Git是什么储存我们的代码和变更历史的、更改一个文件时&#xff0c;Git内部是怎么变化的、Git这样实现的好处等等。TL;DR本文以一个具体例子结合动图介绍了Git的内部原理&#xff0c;包括Git是什么储存我们的代码…

【CodeForces - 195D】Analyzing Polyline (思维,卡精度的处理方式)

题干&#xff1a; As Valeric and Valerko were watching one of the last Euro Championship games in a sports bar, they broke a mug. Of course, the guys paid for it but the barman said that he will let them watch football in his bar only if they help his son …

【CodeForces - 985D】Sand Fortress (二分,贪心,思维构造,技巧,有坑)

题干&#xff1a; You are going to the beach with the idea to build the greatest sand castle ever in your head! The beach is not as three-dimensional as you could have imagined, it can be decribed as a line of spots to pile up sand pillars. Spots are numbe…

mysql多实例脚本_mysql多实例脚本

mysql多实例脚本##mariadb和mysql-server的通用多实例脚本。vi mdp.sh 脚本内容参考内容如下#!/bin/bashecho ‘等待mariadb-server或mysql-server服务软件安装完毕’while truedoyum install -y mariadb-server mariadb &>/dev/nullyum install -y mysql-serv…