만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

식

시간 제한2초메모리 제한1024 MB

요약
정수와 덧셈, 뺄셈, 곱셈 기호로 이루어진 식에서 숫자를 바꿀 때마다 식 값이 홀수인지 짝수인지 구합니다.
난이도

보통10점 중 6점

유형
세그먼트 트리, 수학, 구현
정답자
아직 제출이 없습니다

문제

내일 프로그래밍 학교의 산수 수업 훈련 중 하나는 주어진 산술식의 값을 머릿속으로만 빠르게 계산하는 것이다. 식에는 양의 정수만 있고 괄호는 없으며, 연산은 덧셈, 뺄셈, 곱셈 세 가지뿐이다. 따라서 결과는 항상 정수가 보장된다. 입문 단계에서 학생은 결과의 홀짝만 구하면 된다. 결과는 홀수인가, 짝수인가?

안타깝게도 칠판에 식을 쓰는 교수는 꽤 건망증이 심하다. 교수는 학생들이 계산하는 중에도 식의 여러 숫자를 자주 다시 쓴다. 대개 이렇게 숫자를 고치면 식 전체의 값이 바뀌어서, 학생들은 처음부터 다시 계산해야 한다.

학생들은 이를 도울 프로그램을 만들기로 했다. 입력은 원래 식과 이어지는 값 변경 목록이다. 변경마다 프로그램은 수정된 식의 값을 계산하는데, 가능하면 처음부터 다시 계산하지 않고 이전 결과를 활용한다.

입력

첫 줄에 식에 있는 정수의 개수 NN과 이후 값 변경 횟수 MM이 주어진다(1≤N,M≤1051 \le N, M \le 10^5). 둘째 줄에는 공백으로 구분된 NN개의 토큰이 주어진다. 각 토큰은 정수 AiA_i(1≤Ai≤1091 \le A_i \le 10^9)이거나 +, -, *(덧셈, 뺄셈, 곱셈) 중 하나이다. 다음 MM개의 줄 각각에는 공백으로 구분된 두 수 XX(1≤X≤N1 \le X \le N)와 YY(1≤Y≤1091 \le Y \le 10^9)가 주어지며, 식의 XX번째 수가 YY로 바뀐다는 뜻이다.

변경은 순서대로 적용된다. 다음 변경이 다른 위치를 가리키면 이전 변경은 그대로 유지된다.

출력

M+1M + 1개의 줄을 출력한다. ii번째 줄에는 처음 i−1i - 1번의 변경을 적용한 뒤 식의 값이 짝수이면 even, 홀수이면 odd를 출력한다. 첫 줄은 변경 전의 식에 대한 답이다. 식은 일반적인 연산자 우선순위를 따르며, 곱셈이 덧셈과 뺄셈보다 먼저 계산된다.

예제1

  1. 예제 1

    입력
    6 4
    11 + 22 * 33 - 44 * 55 * 66
    1 2
    2 3
    4 5
    3 5
    
    예상 출력
    odd
    even
    odd
    odd
    odd