For complete blocks, store two lazy values:
= the accumulated starting value for block
= how many polynomial updates overlap this block
For a block starting at index :
- Element at index gets added
Block sum contribution from lazy: . This formula lets you query without pushing lazy values down.