4142: f(X)的最大值
内存限制:1024 MB
时间限制:2.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
# Robot Takahashi
## 题目描述
小高是一个机器人。有$N$个人,每个人要么是小孩要么是成年人。第$i$个人的体重是$W_i$。
一个长度为$N$的字符串$S$由'`0`'和'`1`'组成,表示每个人是小孩还是成年人。如果$S$的第$i$个字符是'`0`',则第$i$个人是小孩;如果是'`1`',则第$i$个人是成年人。
当给小高一个实数$X$时,小高会判断体重小于$X$的人为小孩,体重大于等于$X$的人为成年人。对于一个实数$X$,令$f(X)$表示小高正确判断是小孩还是成年人的人数。求$f(X)$的最大值。
输入
## 输入格式
输入按以下格式从标准输入给出:
$N$
$S$
$W_1$ $W_2$ $\cdots$ $W_N$
输出
## 输出格式
在一行中输出$f(X)$的最大值。
样例输入 复制
5
10101
60 45 30 40 80
样例输出 复制
4
提示
## 输入输出样例
### 输入样例1
```
5
10101
60 45 30 40 80
```
### 输出样例1
```
4
```
### 输入样例2
```
3
000
1 2 3
```
### 输出样例2
```
3
```
### 输入样例3
```
5
10101
60 50 50 50 60
```
### 输出样例3
```
4
```
## 数据范围与提示
【样例1说明】
当给小高$X$=50时,它会判断第2、3、4个人为小孩,第1和第5个人为成年人。
实际上,第2和第4个人是小孩,第1、3和第5个人是成年人,所以第1、2、4和第5个人被正确判断。因此f(50)=4。
这是最大值,因为没有$X$能正确判断所有5个人。所以应该输出4。
【样例2说明】
例如,$X$=10可以达到最大值f(10)=3。
注意所有人可能都是小孩或都是成年人。
【样例3说明】
例如,X=55可以达到最大值f(55)=4。
注意可能有多个人的体重相同。
【数据范围】
- $1 ≤ N ≤ 2 × 10^5$
- $S$是一个长度为$N$的由'`0`'和'`1`'组成的字符串
- $1 ≤ W_i ≤ 10^9$
- $N$和$W_i$都是整数
## 题目来源
ABC257C