#HCOIJ202302T2. 领头牛
领头牛
题目描述
在我国有一处牧场,里面养育着两种牛分别是H牛和G牛。为了方便实时管理我们需要在牛群中选出领头牛,这样我们只需要牵着领头牛其他牛自然就会跟着走。
现在我们要分别选出H领头牛和G领头牛凑成一对。
现在我们让牛群站成一排,例如: “GHHG” ,每头牛都有一个属性“领导能力”。假设第 1 头牛的领导能力为 2 ,那么他可以领导包含自身之后的两头牛也就是 “GH” 。
但是光有领导能力是不够做领头牛的,领头牛的要求满足两种要求之一:
- 能够领导自身品种全部的牛;
- 能够领导对方的领头牛。
我们会给出队伍顺序和每头牛的领导能力,请问有多少对领头牛?
输入输出格式
输入格式:
- 第一行输入 n 表示牛的数量;
- 第二行输入n个字符,有G和H组成,表示牛的排列顺序;
- 第三行输入n个数,表示牛的领导能力。
输出格式:
- 输出一个整数n表示可以凑成几对领导牛。
输入输出样例
输入样例1:
4
GHHG
2 2 1 1
输出样例1:
1
样例1说明:
- 第一头牛G,可以领导2头牛“GH”,没有包含全部的G牛,但是第二头牛H可以领导2头牛“HH”,包含了所有的H牛,所以第二头H牛是领头牛,那么第一头G牛包含了对方的领头牛,所以第一头G牛也是领头牛。
- 现在就是G有一头领头牛,H有一头领头牛,那么只能凑一对(1,2) 。
输入样例2:
3
GGH
2 2 1
输出样例2:
2
样例2说明:
- 第一头牛G,领导2头牛“GG”包含全部的G牛,所以是领头牛;
- 第二头牛G,领导2头牛“GH”包含对方领头牛,所以是领头牛;
- 第三头牛H,领导1头牛“H”包含全部H牛,所以是领头牛;
- 配对(1,3),(2,3)所以有2种
测试点
一共10个测试点,每个测试点10分
每个测试点时间限制为1s,空间限制为128Mb
数据范围:
- 对于20%的数据:1 ≤ n ≤ 20 ;
- 对于40%的数据:1 ≤ n ≤ 100;
- 对于60%的数据:1 ≤ n ≤ 5000;
- 对于80%的数据:1 ≤ n ≤ 20,000;
- 对于100%的数据:1 ≤ n ≤ 100,000 ;