trang chủ / đề bài / dhbb23_ltt_10_c

Chocolate

Đề bài

Mô tả

Cô Mi-a có một số kẹo chocolate và muốn chia cho N người bạn của mình. Tuy nhiên các bạn của Mi-a lại muốn chơi một trò chơi để xem số kẹo chocolate mà Mi-a cần phải chia là bao nhiêu.

Ban đầu, người bạn thứ i có ai viên kẹo. Trò chơi gồm Q thao tác, mỗi thao tác thuộc một trong hai loại sau:

  • 1 l r k: với mọi i thỏa mãn l≤i≤r, thay ai bằng aimodk (số dư khi chia ai cho k);
  • 2 l r: tính tổng số kẹo của các bạn từ vị trí l đến vị trí r, tức là al+al+1+…+ar.

Yêu cầu: Với mỗi thao tác loại 2, hãy tính tổng số kẹo của các bạn từ vị trí l đến vị trí r.

Dữ liệu vào

  • Dòng thứ nhất chứa hai số nguyên N và Q.
  • Dòng thứ hai chứa N số nguyên a1,a2,…,aN.
  • Q dòng tiếp theo, mỗi dòng mô tả một thao tác theo một trong hai dạng: 1 l r k hoặc 2 l r.

Các thao tác được thực hiện lần lượt theo thứ tự trong dữ liệu vào.

Dữ liệu ra

Với mỗi thao tác loại 2, in ra một dòng chứa tổng al+al+1+…+ar tại thời điểm thực hiện thao tác đó.

Ràng buộc

  • 1≤N,Q≤106.
  • 0≤ai≤2·105.
  • 1≤l≤r≤N, 1≤k≤2·105.
  • Có ít nhất một thao tác loại 2.
  • Mỗi test thỏa mãn ràng buộc của một trong các subtask dưới đây.

Subtasks

  • Subtask 1 (15% số điểm): N,Q≤104.
  • Subtask 2 (25% số điểm): N,Q≤2·105 và mọi thao tác loại 1 có k=1.
  • Subtask 3 (30% số điểm): N,Q≤2·105.
  • Subtask 4 (30% số điểm): N,Q≤106, ai≤103 và k≤103.

Ví dụ

Input Output Giải thích
6 3
5 6 2 3 8 10
1 1 3 3
2 1 4
2 3 6
7
23
Sau thao tác đầu tiên dãy thành 2,0,2,3,8,10. Tổng từ vị trí 1 đến 4 là 7, từ vị trí 3 đến 6 là 23.
5 5
4 7 1 4 9
1 1 5 4
2 1 5
1 2 4 2
2 1 3
2 5 5
5
2
1
Lấy dư cho 4 trên cả dãy được 0,3,1,0,1 (các phần tử bằng 4 trở thành 0), tổng là 5. Lấy dư cho 2 trên đoạn [2,4] được 0,1,1,0,1: tổng ba phần tử đầu là 2, phần tử cuối là 1.

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.402 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.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0