Sereja và Mảng

Đề bài

Mô tả

Cho một mảng gồm n số nguyên a1,a2,,an. Bạn cần thực hiện m thao tác, mỗi thao tác thuộc một trong ba loại sau:

  1. 1 v x: gán av=x (đặt phần tử thứ v bằng x).
  2. 2 y: tăng mọi phần tử của mảng thêm y, tức là ai=ai+y với mọi 1in.
  3. 3 q: in ra giá trị hiện tại của phần tử aq.

Hãy thực hiện tất cả các thao tác theo đúng thứ tự đã cho.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.
  • m dòng tiếp theo, mỗi dòng mô tả một thao tác:
    • Nếu bắt đầu bằng số 1: theo sau là hai số nguyên vx.
    • Nếu bắt đầu bằng số 2: theo sau là một số nguyên y.
    • Nếu bắt đầu bằng số 3: theo sau là một số nguyên q.

Dữ liệu ra

Với mỗi thao tác loại 3, in ra giá trị aq trên một dòng riêng, theo đúng thứ tự các truy vấn xuất hiện trong dữ liệu vào.

Ràng buộc

  • 1n,m105
  • 1ai109
  • 1vn, 1x109
  • 1y104
  • 1qn

Ví dụ

Input Output Giải thích
10 11
1 2 3 4 5 6 7 8 9 10
3 2
3 9
2 10
3 1
3 10
1 1 10
2 10
2 10
3 1
3 10
3 9
2
9
11
20
30
40
39
Ban đầu a2=2, a9=9. Sau thao tác "2 10", mọi phần tử tăng thêm 10: a1=11, a10=20. Thao tác "1 1 10" đặt a1=10; hai lần "2 10" tiếp theo đưa a1=30, a10=40, còn a9=9+30=39.
1 3
1
1 1 2
2 1
3 1
3 Đặt a1=2, rồi tăng mọi phần tử thêm 1 nên a1=3.

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