#B. 攻与防

    传统题 文件IO:defense 1000ms 256MiB

攻与防

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

nn 个战士站成一排,分别编号为 1,2,3...n,战士的战斗力等于他的编号 ,有一些战士只会进攻,有一些战士只会防守。现在我们要将他们从某个点开始分成两个阵营,假设这个点为 pos(0posn)pos(0 \leq pos \leq n), 则编号小于等于 pospos 的战士为第一个阵营,编号大于 pospos 的战士为第二个阵营。我们令第一个阵营为进攻方,第二个阵营为防守方,假设第一个阵营中能够进攻的战士战斗力总和为 ww,第二个阵营中能够防守的战士战斗力总和为 vv,我们希望 wv|w-v| 的值最小,其中 || 为绝对值符号。求 wv|w-v| 的最小值。

输入描述

第一行输入一个正整数 nn,表示战士的数量(即后续给出的字符串的长度)。

第二行给出一个字符串 ss,仅由字符 0 或 1 组成,字符串中的每一位分别代表每一位战士的属性,0 代表这个战士只会进攻,1 代表这个战士只会防守。

输出描述

输出一行一个整数表示答案。

4
0011
1

【样例 1 说明】

假设我们在第二个位置切割,这样左边的字符串为 00,右边的字符串为 11,代表左边有 2 个会进攻的战士,战斗力之和为 1+2=3,右边有 2 个会防守的战士,战斗力之和为 3+4=7,即 wv=37=4|w-v|=|3-7|=4。但如果我们在第三个位置切割,左边的字符串为 001,右边的字符串为 1,此时左边会攻击的战士战斗力之和还是 3,右边会防守的战士战斗力为 4,此时差值为 1,差值最小。

7
1000101
2

【样例 2 说明】

第二个样例可以在第五个位置分割,即左边的字符串为 10001,右边的字符串为 01,代表左边有 3 个会进攻的战士,2 个会防守的战士,所有会攻击战士的战斗力之和即 w = 2+3+4=9;右边有 1 个会防守的战士,1 个会进攻的战士,所有会防守的战士的战斗力之和为 v = 7。所以 97=2|9-7|=2

【数据范围】

对于 20%20\% 的数据, n10n \leq 10

对于 40%40\% 的数据,n1000n \leq 1000

对于 100%100\% 的数据,n100000n \leq 100000

牛客(四)

未参加
状态
已结束
规则
OI
题目
4
开始于
2022-10-15 16:00
结束于
2022-10-15 19:00
持续时间
3 小时
主持人
参赛人数
2