For a string s_1\dots s_n of n bits (i.e., zeros and ones), Bobo computes the f-value of s_1\dots s_n by playing the following game.
Formally,
Now, Bobo has a bit string s_1 \dots s_n subjecting to q changes, where the i-th change is to flip all the bits among s_{l_i} \dots s_{r_i} for given l_i, r_i. Find the f-value modulo 998244353 of the bit string after each change.
输入
Note from SCNUOJ admin: we don't have the official test data sets, and all tests used here are randomly generated, so expect weak tests and/or even wrong input format. Contact one of the admins if you wish to improve the tests.
The input consists of several test cases terminated by end-of-file. For each test case,
The first line contains two integers n and q.
The second line contains n bits s_1 \dots s_n.
For the following q lines, the i-th line contains two integers l_i and r_i.
输出
For each change, output an integer which denotes the f-value modulo 998244353.
样例
标准输入 复制文本 |
3 2 010 1 2 2 3 5 1 00000 1 5 |
标准输出 复制文本 |
1 3 5 |
标准输入 复制文本 |
1 1 0 1 1 |
标准输出 复制文本 |
1 |
提示
For the first test case, the string becomes 100
after the first change. f(\texttt{100}) = f(\texttt{000}) + 1 = 1. And it becomes 111
after the second change. f(\texttt{111}) = f(\texttt{110}) + 1 = f(\texttt{100}) + 2 = f(\texttt{000}) + 3 = 3.
来源
第六届中国大学生程序设计竞赛总决赛