A + B
시간 제한8초메모리 제한512 MB
이진수 A와 B가 주어지고, A 또는 B의 비트를 뒤집을 때마다 A 이상 A+B 미만인 x의 1 비트 개수 최댓값을 구합니다.
문제
2진수 , 가 주어졌을 때 다음 쿼리를 처리하라.
- 출력 쿼리: 를 만족하는 를 2진수로 나타냈을 때 1의 개수의 최댓값을 출력한다.
- A 변경 쿼리: 의 최하위 비트부터 번째 비트(0부터 셈)를 반전한다.
- B 변경 쿼리: 의 최하위 비트부터 번째 비트(0부터 셈)를 반전한다.
비트 번호는 0부터 센다. 즉, 의 0번째 비트는 최하위 비트다.
입력
입력은 다음 형식으로 주어진다.
...
첫 줄에 쿼리의 개수 과 2진수 , 가 주어진다. 2번째 줄부터 번째 줄까지 쿼리가 주어진다. 는 출력 쿼리이고, "A "와 "B "는 각각 와 의 최하위 비트부터 번째 비트를 반전하는 변경 쿼리다.
출력
출력 쿼리마다 답을 한 줄에 출력하라.
제한
- (는 의 길이)
- "A " 쿼리에서
- "B " 쿼리에서
- 가 0이 되는 경우는 없다.