You have an array of elements, indexed from to . There are operations you need to perform on it.
Each operation is one of the following:
1 l r v
Increment each value in the range by .2 l r v
Make each value in the range equal to (i.e. for each element , such that , set ).3 l r
Output the minimum value in the range .
In operations 1
and 2
, is guaranteed to be an integer in the range . Every value in the starting array is also guaranteed to be in this range.
Input Specification
The first line has and .
The second line has integers, the original array.
The next lines each contain an operation in the format described above.
Output Specification
For each operation of type 3
, output the answer on its own line.
Sample Input
5 3
1 2 3 4 5
3 2 4
2 2 4 10
3 2 5
Sample Output
2
5
Comments
Can someone take a look at my code and see whats wrong? I got 100 testcases AC and 101st testcase WA. I am very sad rn.
https://dmoj.ca/src/4277500
Edit: nvm I passed by putting #define int long long
If you are using c++, defining your push_down function as inline may provide a speed boost.
https://cses.fi/problemset/task/1735
TFW you couldn't figure out what was wrong with your code when you used
scanf
instead ofcin
in your build function and you usedAnd thought your implementation was wrong.
Can this be called
Segment Tree Test 2
?the problem setter is likely too lazy to rename the problem...
I pretty much created it with the intent of just that, because I couldn't find a template problem that had both range increment and range assignment together to test things on lolol.