#P15901. [TOPC 2025] Reactor

[TOPC 2025] Reactor

Description

In a high-tech industrial facility, a series of nuclear reactors are arranged in a linear configuration. Each reactor operates under strict pressure regulations to ensure safety and efficiency. To prevent critical failures, each reactor has a specific maximum pressure limit. When a reactor’s internal pressure reaches or exceeds this limit, a controlled pressure release (venting) is initiated. This system requires sophisticated management due to dynamic operational adjustments and the need for continuous monitoring.

You are tasked with designing and implementing a system to manage the pressure of a line of nn reactors. Each reactor, indexed from 11 to nn, has an initial maximum pressure limit pip_i. All of the reactors’ initial pressure are 00. The system must support two types of operations:

  1. Pressure Increase Operation: For a given range of reactors [l,r][l, r], increase their pressure by kk units. If the pressure of any reactor in this range reaches or exceeds its maximum limit, it will vent, resetting its pressure to 00. And the maximum pressure limit of the vented reactor will be updated to max(pold2,1)\max(\lfloor \frac{p_{old}}{2} \rfloor, 1), where poldp_{old} is the maximum pressure limit of the reactor before the current pressure increase operation.
  2. Venting Count Query: For a given range of reactors [l,r][l, r], you need to report the total number of venting operations that have occurred among all reactors within this specified range since the beginning of the system’s operation.

Input Format

The first line contains two integers nn and qq, representing the number of reactors and the number of operations, respectively.

The second line contains nn integers, the ii-th integer pip_i represents the initial maximum pressure limit of the ii-th reactor.

The following qq lines describe the operations. Each line begins with an integer opop.

  • If op=1op = 1, it is followed by three integers ll, rr, and kk, representing a pressure increase operation on the range of reactors from ll to rr (inclusive) by kk units.
  • If op=2op = 2, it is followed by two integers ll and rr, representing a venting count query for the range of reactors from ll to rr (inclusive).

Output Format

For each query that op=2op = 2, print a single integer on a new line, representing the total number of venting operations that have occurred among all reactors within the specified range since the beginning of the system’s operation.

10 5
5 10 23 45 10 45 65 10 68 9
1 5 10 664
1 2 9 5
2 4 10
1 8 8 5
2 1 10
8
9
10 10
79 26 9 28 13 40 26 54 69 19
1 1 5 6
1 5 7 2
2 4 7
1 9 10 19
2 5 7
1 5 7 27
2 10 10
2 9 9
1 6 6 20
1 3 8 6
0
0
1
0
10 10
56 29 49 42 47 21 23 54 8 31
2 9 9
1 5 6 23
2 6 7
2 4 7
1 5 6 68
2 1 9
2 3 6
1 2 10 89
2 6 8
1 3 6 53
0
1
1
3
3
5

Hint

  • 1n2×1051 \le n \le 2 \times 10^5
  • 1q2×1051 \le q \le 2 \times 10^5
  • 1pi4×1051 \le p_i \le 4 \times 10^5
  • 1lrn1 \le l \le r \le n
  • 1k4×1051 \le k \le 4 \times 10^5
  • It is guaranteed that there is at least one Venting Count Query.