攻与防
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
有 个战士站成一排,分别编号为 1,2,3...n,战士的战斗力等于他的编号 ,有一些战士只会进攻,有一些战士只会防守。现在我们要将他们从某个点开始分成两个阵营,假设这个点为 , 则编号小于等于 的战士为第一个阵营,编号大于 的战士为第二个阵营。我们令第一个阵营为进攻方,第二个阵营为防守方,假设第一个阵营中能够进攻的战士战斗力总和为 ,第二个阵营中能够防守的战士战斗力总和为 ,我们希望 的值最小,其中 || 为绝对值符号。求 的最小值。
输入描述
第一行输入一个正整数 ,表示战士的数量(即后续给出的字符串的长度)。
第二行给出一个字符串 ,仅由字符 0 或 1 组成,字符串中的每一位分别代表每一位战士的属性,0 代表这个战士只会进攻,1 代表这个战士只会防守。
输出描述
输出一行一个整数表示答案。
4
0011
1
【样例 1 说明】
假设我们在第二个位置切割,这样左边的字符串为 00,右边的字符串为 11,代表左边有 2 个会进攻的战士,战斗力之和为 1+2=3,右边有 2 个会防守的战士,战斗力之和为 3+4=7,即 。但如果我们在第三个位置切割,左边的字符串为 001,右边的字符串为 1,此时左边会攻击的战士战斗力之和还是 3,右边会防守的战士战斗力为 4,此时差值为 1,差值最小。
7
1000101
2
【样例 2 说明】
第二个样例可以在第五个位置分割,即左边的字符串为 10001,右边的字符串为 01,代表左边有 3 个会进攻的战士,2 个会防守的战士,所有会攻击战士的战斗力之和即 w = 2+3+4=9;右边有 1 个会防守的战士,1 个会进攻的战士,所有会防守的战士的战斗力之和为 v = 7。所以 。
【数据范围】
对于 的数据,
对于 的数据,
对于 的数据,