#AT2215. C - Robot Takahashi

C - Robot Takahashi

当前没有测试数据。

C - 机器人Takahashi

得分:300分

问题描述

有$N$个人,每个人都是孩子或成年人。第$i$个人的体重为$W_i$。
每个人是孩子还是成年人由一个长度为$N$的字符串$S$指定,该字符串由01组成。
如果$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$的由01组成的字符串。
  • $1\leq W_i\leq 10^9$
  • $N$和$W_i$是整数。

输入

输入以以下格式从标准输入给出:

NN

SS

W1W_1 W2W_2 \ldots WNW_N

输出

以一个整数的形式在一行中输出$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$。
注意,可能有多个人具有相同的体重。