시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 1024 MB | 432 | 117 | 107 | 31.751% |
$2^k$ ($0 \le k \le 62$) 꼴의 정수 또는 $0$으로만 이루어진 수열이 있습니다. 흐즈로는 이 수열에 대해 다음과 같은 연산을 정의했습니다.
예를 들어, 수열 $[2, 4, 2, 0, 1]$에 $i=1, j=3$을 골라 실행한다면 수열은 $[4, 4, 0, 0, 1]$이 되며, 여기에 $i=1, j=2$를 골라 실행한다면 수열은 $[8, 0, 0, 0, 1]$이 됩니다.
흐즈로는 수열에 연산을 여러 번 실행하여 수열의 최댓값이 가능한 한 커지길 원하지만, 수열 전체에 이 연산을 계속 반복했다가는 머리가 아파질 것이라고 생각하였습니다.
그러던 중 흐즈로는 더욱 골치 아픈 문제점을 생각하였습니다. 수열이 바뀌면 연산을 처음부터 다시 시작해야 한다는 것입니다!
여러분이 해결해야 할 문제는 다음과 같습니다. 우선 초기의 수열 $a$는 빈 수열 $[]$으로 정의합니다. 그 후 다음과 같은 종류의 쿼리가 총 $Q$개 주어집니다.
흐즈로는 이미 머리가 너무 아파서 문제에 대해 생각할 정신조차 없습니다. 흐즈로를 도와 문제를 해결해 주세요!
첫 번째 줄에 쿼리의 개수 $Q$ ($1 \le Q \le 10^6$)가 주어집니다.
두 번째 줄부터 $Q+1$ 번째 줄까지 쿼리가 주어집니다. 각 쿼리는 $+x$ 또는 $-x$ ($x$는 $0$ 또는 $2^k$ $(0 \le k \le 62)$) 중 하나이며, $-x$의 경우 수열 $a$에 $x$가 적어도 하나 이상 존재함이 보장됩니다.
입력의 양이 많기 때문에 언어에 따른 빠른 입출력 방법을 사용할 것을 권장합니다. 빠른 입출력 방법은 15552: 빠른 A+B를 참고하세요.
$Q$개의 쿼리에 대해 각각 한 줄에 문제의 정답을 출력하세요. $a$가 빈 수열인 경우 문제의 정답은 $0$으로 간주합니다. 모든 쿼리에 대해 문제의 정답이 $2^{62}$보다 크지 않음이 보장됩니다.
4 +1 +2 +1 -2
1 2 4 2
첫번째 쿼리 후 수열 $a$는 $[ 1 ]$이 됩니다. 연산을 수행할 수 없으며, 정답은 $1$이 됩니다.
두번째 쿼리 후 수열 $a$는 $[ 1,2 ]$가 됩니다. 연산을 수행할 수 없으며, 정답은 $2$가 됩니다.
세번째 쿼리 후 수열 $a$는 $[ 1,2,1 ]$이 됩니다. 연산을 $2$번 수행해 $a$를 $[ 0,4,0 ]$으로 만들 수 있으며, 정답은 $4$가 됩니다.
네번째 쿼리 후 수열 $a$는 $[ 1,1 ]$이 됩니다. 연산을 $1$번 수행해 $a$를 $[ 2,0 ]$으로 만들 수 있으며, 정답은 $2$가 됩니다.