given an array $$$a$$$ of length $$$n$$$, you have to answer $$$m$$$ queries:
- decrease the numbers greater than $$$x$$$ by $$$x$$$ in the interval $$$[l,r]$$$
- count the occurrence of $$$x$$$ in the interval $$$[l, r]$$$
i have no progress so far.
| # | User | Rating |
|---|---|---|
| 1 | Benq | 3792 |
| 2 | VivaciousAubergine | 3647 |
| 3 | Kevin114514 | 3611 |
| 4 | jiangly | 3583 |
| 5 | strapple | 3515 |
| 6 | tourist | 3470 |
| 7 | Radewoosh | 3415 |
| 8 | Um_nik | 3376 |
| 9 | maroonrk | 3361 |
| 10 | XVIII | 3345 |
| # | User | Contrib. |
|---|---|---|
| 1 | Qingyu | 162 |
| 2 | adamant | 148 |
| 3 | Um_nik | 146 |
| 4 | Dominater069 | 143 |
| 5 | errorgorn | 141 |
| 6 | cry | 138 |
| 7 | Proof_by_QED | 136 |
| 8 | YuukiS | 135 |
| 9 | chromate00 | 134 |
| 10 | soullless | 133 |
given an array $$$a$$$ of length $$$n$$$, you have to answer $$$m$$$ queries:
i have no progress so far.
| Name |
|---|



I suggest you actually mean the following?
You should frame the question better, 1.are the changes permanent,2.is x constant throughout the queries?
i think you can use sqrt decomposition to solve in $$$\mathcal{O}(n \sqrt{n} \log{n})$$$
basically, turn the array into blocks of size $$$\sqrt{n}$$$. in each block, store a map for $$$(\text{val}, \text{freq})$$$
updates: for each block, either lazily add +x to the entire block, or update specific elements.
queries: just iterate thru each block and add relevant values. we can handle stuff that isn't in a complete block separately