#2061. [ABC257C] Robot Takahashi

[ABC257C] Robot Takahashi

题目描述

NN 个人,每个人要么是小孩,要么是大人。第 ii 个人的体重为 WiW_i

给定一个长度为 NN 的字符串 SS ,若 SS 的第 ii 个字符为 0,则第 ii 个人为小孩;若 SS 的第 ii 个字符为 1,第 ii 个人为大人。

高桥君认为,如果一个人体重小于 XX ,则他是小孩;如果一个人体重大于等于 XX ,则他是大人。

请选择合适的实数 XX ,使得高桥君判断正确的人数最大。输出这个最大值。

输入格式

数据以下列形式给出:

NN

SS

W1W_1 W2W_2WNW_N

输出格式

选择合适的实数 XX ,使得高桥君判断正确的人数最大。输出这个最大值。

5
10101
60 45 30 40 80
4
3
000
1 2 3
3
5
10101
60 50 50 50 60
4

数据范围

1N2×1051 \leq N \leq 2×10^5

SS 是一个长度为 NN 且仅含01的字符串。

1Wi1091 \leq W_i \leq 10^9

保证 NNWiW_i 都是整数。

样例解释

样例1

高桥君可以令 X=50X=50 ,他判定第 2,3,42,3,4 个人为小孩,其他人为大人。实际上,只有第 2,42,4 个人为小孩,其他人为大人。高桥君判断正确了第 1,2,4,51,2,4,5 个人,一共 44 个人。这是最大值。

样例2

高桥君可以令 X=10X=10 ,三个人都将判断正确。注意,有可能所有人都是大人,也有可能所有人都是小孩。

样例3

高桥君可以令 X=55X=55 ,他将判断正确了 44 个人。这是最大值。注意,可能会有两个人的体重相同。