#5211. DYNAMICRANK - Bảng xếp hạng động

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Cần quản lý điểm số của n game thủ, được đánh số từ 1 đến n . Có hai loại thao tác:

  1. update id val: Cập nhật điểm của game thủ id thành val.
  2. query L R: Tính tổng điểm của tất cả các game thủ có thứ tự từ l đến r .

Dữ liệu:

  • Dòng đầu tiên gồm hai số nguyên n q ( 1 \le n \le 10^5 , 1 \le q \le 10^5 ) - số lượng game thủ và số lượng thao tác.
  • Dòng thứ hai gồm n số nguyên s_i ( 1 \le s_i \le 10^9 ) - điểm số ban đầu của các game thủ.
  • q dòng tiếp theo, mỗi dòng mô tả một thao tác:
    • update id val ( 1 \le id \le n , 1 \le val \le 10^9 ).
    • query L R ( 1 \le L \le R \le n ).

Kết quả: Với mỗi thao tác query, in ra một dòng duy nhất chứa tổng điểm của các game thủ từ L đến R .

Ví dụ:

Dữ liệu:

5 5
1 2 3 4 5
query 2 4
update 3 6
query 2 4
update 1 10
query 1 5

Kết quả:

9
12
28

Giải thích:

  • query 2 4: Tổng điểm từ game thủ 2 đến 4 là 2 + 3 + 4 = 9 .
  • update 3 6: Cập nhật điểm của game thủ 3 thành 6.
  • query 2 4: Tổng điểm từ game thủ 2 đến 4 là 2 + 6 + 4 = 12 .
  • update 1 10: Cập nhật điểm của game thủ 1 thành 10.
  • query 1 5: Tổng điểm từ game thủ 1 đến 5 là 10 + 2 + 6 + 4 + 5 = 27 .

Giới hạn:

  • 1 \le n \le 10^5
  • 1 \le q \le 10^5
  • 1 \le s_i \le 10^9
  • 1 \le id \le n , 1 \le val \le 10^9
  • 1 \le L \le R \le n