AT_bitflyer2018_final_e 数式とクエリ
Description
[problemUrl]: https://atcoder.jp/contests/bitflyer2018-final/tasks/bitflyer2018_final_e
`(`, `)`, `+`, `-`, `*`, `a` のみからなる数式 $ S $ が与えられます(詳細は問題文の後半を参照してください)。$ S $ に含まれる `a` の個数を $ N $ とします。
$ N $ 個の整数 $ a_1,\ ...,\ a_N $ と $ 2 $ 個の整数 $ (b_i,\ x_i) $ からなる $ Q $ 個のクエリが与えられるので、これらのクエリを処理してください。
クエリ: 与えられた数式中の左から $ b_i $ 番目の `a` を $ x_i $ に、左から $ 1,\ ...,\ b_i-1,\ b_i+1,\ ...,\ N $ 番目の `a` をそれぞれ $ a_1,\ ...,\ a_{b_i-1},\ a_{b_i+1},\ ...,\ a_N $ に置き換えた数式の値と $ 10^9+7 $ を法として合同な $ 0 $ 以上 $ 10^9+6 $ 以下の整数を出力する。
この問題で与えられる数式 $ S $ は、以下のような BNF 表記の `` シンボルで表されます。
```
::= | '+' | '-'
::= | '*'
::= 'a' | '(' ')'
```
Input Format
入力は以下の形式で標準入力から与えられる。
> $ S $ $ Q $ $ a_1 $ ... $ a_N $ $ b_1 $ $ x_1 $ : $ b_Q $ $ x_Q $
Output Format
$ Q $ 行出力せよ。 $ i $ 行目 ($ 1\
Explanation/Hint
### 制約
与えられる数式に含まれる `a` の個数を $ N $ とします。
- $ S $ の長さは $ 200\,000 $ 以下
- $ S $ は問題文中の BNF 表記の `` シンボルとして表せる
- $ 0\