
두유노 김치?
두유노 이국렬?
두유노 계산기? 펄~럭
국렬이는 세 번이나 계산기 문제를 내놓고 또 계산기 문제를 냈다. 언제까지 나오는지 지켜보자. 당신은 또 계산기 문제를 만나서 귀찮지만 상금을 얻기 위해서 주어진 수식을 규칙에 맞게 계산해야 한다.
국렬이는 세 번씩이나 같은 형식의 수식을 줬고, 국렬이, 참가자, 검수진 모두가 파싱으로부터 고통받는 것을 원하지 않기에 수식 형태를 바꿨다. 이번 입력으로 주어지는 수식은 수와 연산자가 번갈아 가면서 나오며 수와 연산자 사이에 띄어쓰기가 있다. 수식의 i번째 수를 X_i, i번째 연산자를 Op_i로 표시하면 수가 N개인 식을 X_1 Op_1 X_2 Op_2 ... Op_N−1 X_N로 표기할 수 있다. 연산자의 종류는 +, -, *, /가 있다. 마지막에 연산자가 있는 경우와 X_i가 음수인 경우, 앞에 불필요한 0이 있는 경우는 입력으로 주어지지 않는다. 즉, −1−1, 2+−3, 001+0002 같은 경우는 입력으로 주어지지 않는다.
N개의 수로 이루어진 수식과 N−1 개의 양의 정수 u_i가 주어진다. 다음 규칙에 맞게 계산할 것이다.
예를 들어서 수식 3− 2× 5+10과 양의 정수 u=\[1,3,14]가 주어지면 다음과 같이 계산한다.
이 문제에서의 나눗셈은 실수 나눗셈으로 생각한다. 즉, 5/2는 2가 아닌 2.5다.
이처럼 수식을 계산하는 프로그램을 짜보자.
첫 번째 줄에 피연산자의 개수인 N이 주어진다. (2 ≤N≤500,000)
두 번째 줄에 피연산자와 +, -, *, /로만 이루어진 수식이 주어진다. 피연산자와 연산자는 공백으로 구분해서 주어지며, 피연산자는 0 이상 109+6 이하의 정수다.
세 번째 줄에 u_1, ..., u_N−1이 공백으로 구분되어 주어진다. (1 ≤u_i⊕ v ≤N−i)
계산 과정 중에 0으로 나누는 경우는 주어지지 않는다.
각 i번째 줄에 u_i에 대한 결과 값을 기약분수 P/Q로 표현했을 때, Q의 109+7에 대한 곱셈 역원 Q−1에 대해 P×Q−1을 109+7로 나눈 나머지를 출력한다.