额外提供 $60\%$ 的时间。
小 L 有 $n$ 枚相同的硬币排成一列。
对于第 $i$ 枚硬币,它的状态可以用一个整数 $a[i]$ 表示:
- 若正面朝上,则 $a[i]=1$。
- 若背面朝上,则 $a[i]=0$。
若把一枚硬币翻转一次,如果它原来是正面朝上的,则它会变成背面朝上;如果它原来是背面朝上的,则它会变成正面朝上。
接下来,小 L 会对硬币进行 $m$ 次操作,对于每次操作:
- 若当前正面朝上的硬币个数为 $p$,则小 L 会把第 $p$ 枚硬币翻转一次。
- 特别地,若 $p=0$,则他不会翻转任何硬币。
操作完成后,小 L 想知道有多少枚硬币是正面朝上的。于是他找到了你,并邀请你帮助他解决这个问题。
從标准输入 (stdin) 读入数据。
输入的第一行包含两个正整数 $n,m$,以空格分隔。
第二行包含 $n$ 个非负整数 $a[1],a[2],a[3],…,a[n]$,以空格分隔。
输出到标准输出 (stdout) 中。
输出一行,一个整数表示答案。
4 2 1 0 0 1
4
操作前,四枚硬币的状态分别为 $1,0,0,1$。
对于第一次操作,正面朝上的硬币个数为 $2$,于是小 L 把第 $2$ 枚硬币翻转。
此时,四枚硬币的状态分别为 $1,1,0,1$。
对于第二次操作,正面朝上的硬币个数为 3,于是小 L 把第 $3$ 枚硬币翻转。
最后,四枚硬币的状态分别为 $1,1,1,1$。因此,应输出 $4$。
数据范围:
- $n≤10^6$
- $m≤10^6$
- 对于所有满足 $1≤i≤n$ 的整数 $i$,$a[i]≤1$。
测试点 $1$~$3$ 满足:$n\le 1000, m\le 10$。
测试点 $4,5$ 满足:$n\le 1000, m\le 1000, a[i]=1$。
测试点 $6$~$10$ 满足:$n\le 1000, m\le 1000$。
测试点 $11,12$ 满足:$a[i]=0$。
测试点 $13$~$15$ 满足:$a[i]=1$。
测试点 $16$~$20$ 没有额外的约束条件。
| ID | User | Problem | Subject | Hit | Post Date |
沒有發現任何「解題報告」 |
|||||