CF1847D.Professor Higashikata
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Josuke is tired of his peaceful life in Morioh. Following in his nephew Jotaro's footsteps, he decides to study hard and become a professor of computer science. While looking up competitive programming problems online, he comes across the following one:
Let s be a binary string of length n . An operation on s is defined as choosing two distinct integers i and j ( 1≤i<j≤n ), and swapping the characters si,sj .
Consider the m strings t1,t2,…,tm , where ti is the substring † of s from li to ri . Define t(s)=t1+t2+…+tm as the concatenation of the strings ti in that order.
There are q updates to the string. In the i -th update sxi gets flipped. That is if sxi=1 , then sxi becomes 0 and vice versa. After each update, find the minimum number of operations one must perform on s to make t(s) lexicographically as large ‡ as possible.
Note that no operation is actually performed. We are only interested in the number of operations.
Help Josuke in his dream by solving the problem for him.
—————————————————————— † A string a is a substring of a string b if a can be obtained from b by the deletion of several (possibly, zero or all) characters from the beginning and several (possibly, zero or all) characters from the end.
‡ A string a is lexicographically larger than a string b of the same length if and only if the following holds:
- in the first position where a and b differ, the string a has a 1 , and the string b has a 0 .
输入格式
The first line contains three integers n , m , q ( 1≤n,m,q≤2⋅105 ).
The next line contains a binary string s of length n , consisting only of digits 0 and 1 .
The i -th line of the next m lines contains two integers li and ri ( 1≤li≤ri≤n ).
The i -th line of the next q lines contains a single integer xi ( 1≤xi≤n ).
输出格式
Print q integers. The i -th integer is the minimum number of operations that need to be performed on s to get the lexicographically largest possible string t(s) in the i -th round.
输入输出样例
输入#1
2 2 4 01 1 2 1 2 1 1 2 2
输出#1
0 1 0 1
输入#2
8 6 10 10011010 5 6 2 3 6 8 5 7 5 8 6 8 3 5 6 2 5 2 5 8 4 1
输出#2
2 3 2 2 1 2 2 2 2 2
说明/提示
In the first test case,
Originally, t(s)=s(1,2)+s(1,2)=0101 .
After the 1 -st query, s becomes 11 and consequently t becomes 1111 . You don't need to perform any operation as t(s) is already the lexicographically largest string possible.
After the 2 -nd query, s becomes 01 and consequently t becomes 0101 . You need to perform 1 operation by swapping s1 and s2 . Consequently, t(s) becomes 1010 which is the lexicographically largest string you can achieve.