Truy vấn Đoạn và Sao chép

Đề bài

Mô tả

Bạn quản lý một danh sách các mảng, ban đầu chỉ có 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. Cập nhật: Gán giá trị tại vị trí a trong mảng k bằng x.
  2. Tính tổng: Tính tổng các phần tử từ vị trí a đến b trong mảng k.
  3. Sao chép: Tạo một bản sao của mảng k và thêm vào cuối danh sách.

Dữ liệu vào

Dòng đầu chứa hai số nguyên nq: kích thước mảng ban đầu 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 k a x — gán ta=x trong mảng k

  • 2 k a b — tính tổng từ a đến b trong mảng k
  • 3 k — sao chép mảng k

Dữ liệu ra

Với mỗi truy vấn loại 2, in ra tổng tương ứng.

Ràng buộc

  • 1n,q2·105
  • 1ti,x109
  • 1abn
  • Mảng k luôn tồn tại tại thời điểm truy vấn

Ví dụ

Input Output Giải thích
5 6
2 3 1 2 5
3 1
2 1 1 5
2 2 1 5
1 2 2 5
2 1 1 5
2 2 1 5
13
13
13
15
Ban đầu mảng 1 = [2,3,1,2,5]. Sao chép mảng 1 → mảng 2 = [2,3,1,2,5]. Tổng [1,5] mảng 1 = 13. Tổng [1,5] mảng 2 = 13. Gán vị trí 2 mảng 2 = 5 → [2,5,1,2,5]. Tổng [1,5] mảng 1 = 13 (không đổi). Tổng [1,5] mảng 2 = 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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0