Bài tập hè của Hải Ly

Đề bài

Mô tả

Cho dãy số nguyên a1,a2,,an. Bạn cần thực hiện m truy vấn liên tiếp thuộc một trong ba loại sau:

  1. 1 x v — gán ax=v.
  2. 2 l r — tính tổng i=lrfil·ai(mod109), trong đó f0=f1=1fi=fi1+fi2 với i2.
  3. 3 l r d — tăng ax thêm d với mọi x thỏa lxr.

Lưu ý rằng số dư được lấy theo modulo 109 (không phải 109+7).

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 truy vấn theo định dạng mô tả ở trên.

Dữ liệu ra

Với mỗi truy vấn loại 2, in ra giá trị tổng cần tính theo modulo 109 trên một dòng riêng.

Ràng buộc

  • 1n,m2·105
  • 0ai105
  • Với truy vấn loại 1: 1xn, 0v105.
  • Với truy vấn loại 2: 1lrn.
  • Với truy vấn loại 3: 1lrn, 0d105.

Ví dụ

Input Output Giải thích
5 5
1 3 1 2 4
2 1 4
2 1 5
2 2 4
1 3 10
2 1 5
12
32
8
50
Truy vấn 2 1 4 tính f0·1+f1·3+f2·1+f3·2=1+3+2+6=12. Sau khi gán a3=10, truy vấn 2 1 5 cho kết quả 1+3+20+6+20=50.
5 4
1 3 1 2 4
3 1 4 1
2 2 4
1 2 10
2 1 5
12
45
Sau truy vấn 3 1 4 1, dãy trở thành [2,4,2,3,4]. Sau khi gán a2=10, dãy là [2,10,2,3,4], truy vấn 2 1 5 cho 2+10+4+9+20=45.

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0