Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int l, r, val;
- cin >> l >> r >> val;
- l--;
- r--;
- for (int i = l; i <= r; ){
- if (block_start[i] && i + len - 1 <= r){
- block[block_num[i]] += val;
- add[block_num[i]] += val;
- i += len;
- }
- else{
- a[i] += val;
- i++;
- }
- }
- int bsl = block_num[l] * len;
- block[block_num[l]] = -INF;
- for (int i = bsl; i < min(bsl + len, n); i++){
- block[block_num[l]] = max(block[block_num[l]], a[i] + add[block_num[l]]);
- }
- int bsr = block_num[r] * len;
- block[block_num[r]] = -INF;
- for (int i = bsr; i < min(bsr + len, n); i++){
- block[block_num[r]] = max(block[block_num[r]], a[i] + add[block_num[r]]);
- }
Advertisement
Add Comment
Please, Sign In to add comment