#HCOIJ202302T2. 领头牛

领头牛

题目描述

在我国有一处牧场,里面养育着两种牛分别是H牛和G牛。为了方便实时管理我们需要在牛群中选出领头牛,这样我们只需要牵着领头牛其他牛自然就会跟着走。

现在我们要分别选出H领头牛和G领头牛凑成一对。

现在我们让牛群站成一排,例如: “GHHG” ,每头牛都有一个属性“领导能力”。假设第 1 头牛的领导能力为 2 ,那么他可以领导包含自身之后的两头牛也就是 “GH” 。

但是光有领导能力是不够做领头牛的,领头牛的要求满足两种要求之一:

  1. 能够领导自身品种全部的牛;
  2. 能够领导对方的领头牛。

我们会给出队伍顺序和每头牛的领导能力,请问有多少对领头牛?

输入输出格式

输入格式:

  • 第一行输入 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 ;