AT_abc368_g [ABC368G] Add and Multiply Queries
Description
[problemUrl]: https://atcoder.jp/contests/abc368/tasks/abc368_g
長さ $ N $ の正整数列 $ A,\ B $ が与えられます。以下の形式で与えられる $ Q $ 個のクエリを、与えられた順番に処理してください。クエリは次の $ 3 $ 種類のいずれかです。
- タイプ $ 1 $ : `1 i x` の形式で与えられる。$ A_i $ を $ x $ に置き換える。
- タイプ $ 2 $ : `2 i x` の形式で与えられる。$ B_i $ を $ x $ に置き換える。
- タイプ $ 3 $ : `3 l r` の形式で与えられる。以下の問題を解き、答えを出力する。
- はじめ $ v\ =\ 0 $ とする。$ i\ =\ l,\ l\ +\ 1,\ \dots\ ,r $ の順に、 $ v $ を $ v\ +\ A_i $ もしくは $ v\ \times\ B_i $ で置き換える操作を行う。最終的な $ v $ として実現できる最大値を求めよ。
ただし、**入力で与えられるタイプ $ 3 $ のクエリの答えは $ 10^{18} $ 以下であることが保証されています。**
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ A_1 $ $ A_2 $ $ \cdots $ $ A_N $ $ B_1 $ $ B_2 $ $ \cdots $ $ B_N $ $ Q $ $ query_1 $ $ query_2 $ $ \vdots $ $ query_Q $
ここで $ query_i $ は $ i $ 番目のクエリであり、以下のいずれかの形式で与えられる。
> $ 1 $ $ i $ $ x $
> $ 2 $ $ i $ $ x $
> $ 3 $ $ l $ $ r $
Output Format
タイプ $ 3 $ のクエリの個数を $ q $ 個として、 $ q $ 行出力せよ。$ i $ 行目には $ i $ 番目のタイプ $ 3 $ のクエリの答えを出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 10^5 $
- $ 1\ \leq\ A_i\ \leq\ 10^9 $
- $ 1\ \leq\ B_i\ \leq\ 10^9 $
- $ 1\ \leq\ Q\ \leq\ 10^5 $
- タイプ $ 1 $, $ 2 $ のクエリにおいて、 $ 1\ \leq\ i\ \leq\ N $
- タイプ $ 1 $, $ 2 $ のクエリにおいて、 $ 1\ \leq\ x\ \leq\ 10^9 $
- タイプ $ 3 $ のクエリにおいて、 $ 1\ \leq\ l\ \leq\ r\ \leq\ N $
- タイプ $ 3 $ のクエリにおいて、出力すべき値は $ 10^{18} $ 以下である
### Sample Explanation 1
$ 1 $ 番目のクエリでは、答えは $ ((0\ +\ A_1)\ \times\ B_2)\ \times\ B_3\ =\ 12 $ です。 $ 3 $ 番目のクエリでは、答えは $ ((0\ +\ A_1)\ +\ A_2)\ +\ A_3\ =\ 7 $ です。