#AT2215. C - Robot Takahashi
C - Robot Takahashi
当前没有测试数据。
C - 机器人Takahashi
得分:300分
问题描述
有$N$个人,每个人都是孩子或成年人。第$i$个人的体重为$W_i$。
每个人是孩子还是成年人由一个长度为$N$的字符串$S$指定,该字符串由0
和1
组成。
如果$S$的第$i$个字符是0
,则第$i$个人是孩子;如果是1
,则第$i$个人是成年人。
当机器人Takahashi给定一个实数$X$时,
Takahashi判断体重小于$X$的人为孩子,体重大于或等于$X$的人为成年人。
对于一个实数$X$,令$f(X)$为Takahashi正确判断是否为孩子或成年人的人数。
找出所有实数$X$的$f(X)$的最大值。
约束
- $1\leq N\leq 2\times 10^5$
- $S$是一个长度为$N$的由
0
和1
组成的字符串。 - $1\leq W_i\leq 10^9$
- $N$和$W_i$是整数。
输入
输入以以下格式从标准输入给出:
输出
以一个整数的形式在一行中输出$f(X)$的最大值。
5
10101
60 45 30 40 80
4
当Takahashi给定$X=50$时,它判断第$2$、$3$和$4$个人是孩子,第$1$和$5$个人是成年人。
实际上,第$2$和第$4$个人是孩子,而第$1$、第$3$和第$5$个人是成年人,所以判断正确的是第$1$、第$2$、第$4$和第$5$个人。
因此,$f(50)=4$。
这是最大值,因为不存在一个$X$可以对全部$5$个人判断正确。因此,应该输出$4$。
3
000
1 2 3
3
例如,$X=10$实现了最大值$f(10)=3$。
注意,这些人都可以是孩子,也可以都是成年人。
5
10101
60 50 50 50 60
4
例如,$X=55$实现了最大值$f(55)=4$。
注意,可能有多个人具有相同的体重。