AT_abc467_g [ABC467G] Many Sweets Problem

Description

長さ $ N $ の正整数列 $ A=(A_1,A_2,\dots,A_N) $ があります。次のクエリを $ Q $ 回処理してください。 - `c x l r k` : $ A_c $ の値を $ x $ に更新する。その後、次の小問題を解いて答えを出力する。 > $ r-l+1 $ 個のお菓子があります。 $ i $ 個目のお菓子の美味しさは $ A_{l+i-1} $ です。 > あなたは食べたお菓子の美味しさの総和が $ k $ 以上になるまでお菓子を食べることにしました。 > 上手く食べるお菓子を選んだ時、食べるお菓子の個数を最小で何個にすることができますか?答えを出力してください。 > ただし、どのようにお菓子を食べても美味しさの総和が $ k $ 以上にならない時は $ -1 $ を出力してください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ Q $ $ A_1 $ $ A_2 $ $ \dots $ $ A_N $ $ \mathrm{query}_1 $ $ \mathrm{query}_2 $ $ \vdots $ $ \mathrm{query}_Q $ 各クエリ $ \mathrm{query}_q $ は以下の形式で与えられる。 > $ c $ $ x $ $ l $ $ r $ $ k $

Output Format

$ Q $ 行出力せよ。 $ q $ 行目には $ q $ 番目のクエリの答えを出力せよ。

Explanation/Hint

### Sample Explanation 1 $ 1 $ 番目のクエリについて説明します。 まず、 $ A_1 $ を $ 1 $ に更新します。 $ A=(1,2,4,1,7,3,6) $ になります。そして小問題を解きます。 小問題ではお菓子は $ 4 $ 個あり、美味しさは順に $ 1,7,3,6 $ です。 食べたお菓子の美味しさの総和が $ k=9 $ 以上になるように食べるお菓子の個数を最小化するには、 $ 2 $ 番目のお菓子と $ 4 $ 番目のお菓子を食べるのが最適です。よって小問題の答えは $ 2 $ になります。 ### Constraints - $ 1 \leq N \leq 10^5 $ - $ 1 \leq Q \leq 10^5 $ - $ 1 \leq A_i \leq 10^9 $ - $ 1 \leq c \leq N $ - $ 1 \leq x \leq 10^9 $ - $ 1 \leq l \leq r \leq N $ - $ 1 \leq k \leq 10^{15} $ - 入力される値は全て整数