AT_abc257_c.[ABC257C] Robot Takahashi

普及-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

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

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

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

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

数据范围

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

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

1≤Wi≤1091 \leq W_i \leq 10^9

保证 NN 和 WiW_i 都是整数。

输入格式

数据以下列形式给出:

NN

SS

W1W_1 W2W_2 … WNW_N

输出格式

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

样例解释

样例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 个人。这是最大值。注意,可能会有两个人的体重相同。

输入输出样例

  • 输入#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

输入解题思路,AI测评打分。不知道怎么写?

首页