Hàm Zigzag

Đề bài

Mô tả

Với mỗi số nguyên z2, định nghĩa dãy Zigzag S1z,S2z,S3z, có chu kỳ 2(z1) như sau: các giá trị đầu tiên trong một chu kỳ là 1,2,3,,z,z1,z2,,2, rồi lặp lại. Ví dụ với z=3, dãy bắt đầu là 1,2,3,2,1,2,3,2,1,

Cho mảng a gồm n số nguyên. Định nghĩa hàm Zigzag với tham số (l,r,z) trong đó 1lrnz2:

Z(l,r,z)=i=lrai·Sil+1z

Bạn cần xử lý m thao tác trên mảng:

  1. Gán (p,v): gán apv.
  2. Truy vấn Zigzag (l,r,z): tính và in ra giá trị Z(l,r,z).

Dữ liệu vào

  • Dòng đầu chứa số nguyên n.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.
  • Dòng thứ ba chứa số nguyên m — số lượng thao tác.
  • m dòng tiếp theo, mỗi dòng mô tả một thao tác:
    • Bắt đầu bằng số nguyên ti{1,2}.
    • Nếu ti=1: tiếp theo là hai số nguyên pi,vi (1pin, 1vi109).
    • Nếu ti=2: tiếp theo là ba số nguyên li,ri,zi (1lirin, 2zi6).

Dữ liệu ra

Với mỗi thao tác loại 2, in giá trị Z(l,r,z) trên một dòng riêng, theo đúng thứ tự xuất hiện của các thao tác.

Ràng buộc

  • 1n105
  • 1ai109
  • 1m105
  • 2zi6

Ví dụ

Input Output Giải thích
5
2 3 1 5 5
4
2 2 3 2
2 1 5 3
1 3 5
2 1 5 3
5
26
38
Truy vấn 1: Z(2,3,2)=3·1+1·2=5.
Truy vấn 2: Z(1,5,3)=2·1+3·2+1·3+5·2+5·1=26.
Sau gán a3=5, mảng thành (2,3,5,5,5).
Truy vấn 4: Z(1,5,3)=2·1+3·2+5·3+5·2+5·1=38.
5
42665793 142698407 856080769 176604645 248258165
2
2 5 5 3
2 4 4 2
248258165
176604645
Truy vấn 1: Z(5,5,3)=a5·S13=248258165·1.
Truy vấn 2: Z(4,4,2)=a4·1=176604645.

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