비트 연산 구간 질의
시간 제한3초메모리 제한512 MB
배열에 구간 AND와 OR 갱신을 반복하고 구간 최솟값을 묻는 질의에 답한다. n은 5*10^5까지이고 값은 2^30 미만이다.
문제
크기 인 배열 가 주어지고, 이 배열에 개의 질의를 수행해야 한다. 질의는 세 가지 종류가 있다.
- "
&": 모든 에 대해 를 (AND)로 바꾼다. - "
|": 모든 에 대해 를 (OR)로 바꾼다. - "
?": 가운데 최솟값을 구한다.
세 번째 종류의 질의에 대한 답을 모두 출력한다.
입력
첫째 줄에 정수 ()이 주어진다. 이는 배열의 크기이다.
둘째 줄에 개의 정수 ()가 공백으로 구분되어 주어진다. 이는 배열의 원소이다.
셋째 줄에 정수 ()이 주어진다. 이는 질의의 수이다.
다음 개의 줄에 위에서 설명한 형식으로 질의가 주어진다. 모든 질의에 대해 이고, 첫 번째와 두 번째 종류의 질의에 대해 이다.
출력
세 번째 종류의 질의마다 답을 한 줄에 하나씩 출력한다.