바이너리 문자열 토글
면접 대비시간 제한2초메모리 제한512 MB
모두 0인 이진 문자열에 U번의 구간 뒤집기 연산을 적용한 뒤, U+1개 상태 중 사전순으로 가장 큰 문자열을 출력한다.
문제
길이가 이고 모든 문자가 0인 바이너리 문자열 이 있다. 이 문자열에 변경 연산을 번 적용한다. 번째 연산은 을 로 바꾸는 연산이므로, 번의 연산이 모두 끝나면 문자열은 가 된다.
번째 연산은 두 정수 와 로 주어진다. 이 연산은 구간 에 속하는 모든 문자를 뒤집는다. 즉, 양 끝을 포함한 이 구간 안에서 1은 0이 되고 0은 1이 된다.
연산을 모두 적용하면 문자열 를 얻는다. 이 개 문자열 중 사전 순으로 가장 뒤에 오는 것을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 과 가 주어진다. ()
둘째 줄부터 개 줄에 걸쳐 와 가 주어진다. ()
출력
개 문자열 중 사전 순으로 가장 뒤에 오는 것을 첫째 줄에 출력한다.
힌트
예제 입력에서 문자열은 다음 순서로 바뀐다.
- =
0000000000 - =
0000000011 - =
0000011100 - =
0000011111 - =
1111100011 - =
1100000011 - =
1110000011 - =
1101000011 - =
1110111101 - =
1111000001 - =
1111001001