#313. [CFCOI Collection 5] 翻翻乐

[CFCOI Collection 5] 翻翻乐

题目描述

你在玩一个单人游戏。

有一个长度为 nn 的序列 a1,a2,⋯ ,ana_1,a_2,\cdots,a_n,其中 ai∈{0,1}a_i \in \{0,1\}。

你每次可以选择一个 xx,满足 ax=1a_x=1,然后将 a1,a2,⋯ ,axa_1,a_2,\cdots,a_x 均翻转(翻转前为 kk ,翻转后变为 1−k1-k)

无法选择 ax=1a_x=1 则游戏结束。可以证明游戏总是会在有限次操作后结束。

在游戏结束前,你最多操作多少次?答案对 109+710^9+7 取模。

为了增加游戏的趣味性,你有 qq 次对 aa 序列的修改。每次修改选择 xx,将 axa_x 翻转。你需要求出此时的最多操作次数。

注意:进行第 ii 次操作时,是在前 i−1i-1 次操作的基础上进行的。

输入格式

第 11 行,22 个整数 n,qn,q。

第 22 行,nn 个整数 a1,a2,⋯ ,ana_1,a_2,\cdots,a_n。

接下来 qq 行,每行一个整数 xx,表示一次操作。

输出格式

共 q+1q+1 行,每行一个整数。

第一行输出初始序列的最多操作次数。

接下来 qq 行,第 ii 行输出第 ii 次操作后最多操作次数。

答案对 109+710^9+7 取模。

样例

2 1
0 1
2
2
0

样例解释

对于初始时的序列 {0,1}\{0,1\},选择 x=1x=1,操作后序列变为 {1,0}\{1,0\},再选择 x=0x=0,操作后序列变为 {0,0}\{0,0\},此时无法再操作。

第一次操作后,序列变为 {0,0}\{0,0\},无法操作。

数据范围

对于 100%100\% 的数据,$1 \le n \le 5 \times 10^5,0 \le q \le 5 \times 10^5,0 \le a_i \le 1$。

Subtask 编号 n≤n \le q≤q \le 分值 依赖子任务
1 11 5×1055 \times 10^5 5 -
2 2020 1010 10
3 10310^3 103 10^3 20 2
4 5×1055 \times 10^5 00 25 -
5 5×1055 \times 10^5 40 1 - 4