trang chủ / đề bài / rupdsums

Cập nhật và Tính tổng trên Đoạn

Đề bài

Mô tả

Cho một mảng gồm n phần tử. Bạn cần xử lý q truy vấn thuộc ba loại:

  1. Tăng mỗi giá trị trong đoạn [a,b] thêm x.
  2. Gán mỗi giá trị trong đoạn [a,b] bằng x.
  3. Tính tổng các giá trị trong đoạn [a,b].

Dữ liệu vào

Dòng đầu chứa hai số nguyên n và q: kích thước mảng và số truy vấn.

Dòng thứ hai chứa n số nguyên t1,t2,…,tn: các giá trị ban đầu của mảng.

  • q dòng tiếp theo, mỗi dòng mô tả một truy vấn:

  • 1 a b x: tăng mỗi giá trị trong đoạn [a,b] thêm x

  • 2 a b x: gán mỗi giá trị trong đoạn [a,b] bằng x
  • 3 a b: tính tổng các giá trị trong đoạn [a,b]

Dữ liệu ra

Với mỗi truy vấn loại 3, in ra tổng các giá trị trong đoạn tương ứng.

Ràng buộc

  • 1≤n,q≤2·105
  • 1≤ti,x≤106
  • 1≤a≤b≤n

Ví dụ

Input Output Giải thích
6 5
2 3 1 1 5 3
3 3 5
1 2 4 2
3 3 5
2 2 4 5
3 3 5
7
11
15
Ban đầu mảng là [2,3,1,1,5,3]. Tổng [3,5] = 1+1+5 = 7. Sau tăng [2,4] thêm 2: [2,5,3,3,5,3]. Tổng [3,5] = 3+3+5 = 11. Sau gán [2,4] = 5: [2,5,5,5,5,3]. Tổng [3,5] = 5+5+5 = 15.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0