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