SỐ ĐẶC BIỆT

(sodbhp.*)

Số đặc biệt là số có giá trị chia hết cho tổng chữ số của nó. Ví dụ số \(2\) \(18\) là số đặc biệt vì: \(2\) chia hết cho \(2\); \(18\) chia hết cho \(9\ (1 + 8 = 9)\). Cho dãy \(A\)\(n\) số nguyên dương {\(a_{1},a_{2},\ldots,a_{n}\}\) . Có \(q\) câu hỏi, mỗi câu hỏi cho biết \(2\) số \(l,r\ (1 \leq l \leq r \leq n).\)

Yêu cầu: Hãy cho biết với mỗi câu hỏi, trong đoạn \(\lbrack l,r\rbrack\) của dãy \(A\) có bao nhiêu phần tử là số đặc biệt?

Dữ liệu vào:

  • Dòng một chứa hai số nguyên dương \(n,q\ (1 \leq n \leq 10^{5},\ 1 \leq q \leq 10^{5})\);

  • Dòng thứ hai dãy \(A\) chứa\(\ n\) số nguyên dương \(a_{1},a_{2},\ldots,a_{n}\ (1 \leq a_{i} \leq 10^{9},\ \ \forall i = \overline{1;n})\).

  • \(q\) dòng tiếp theo, mỗi dòng chứa hai số \(l\)\(r\).

Kết quả: Ghi \(q\) dòng, mỗi dòng là số lượng số đặc biệt trong đoạn \(\lbrack l,r\rbrack\).

Ví dụ:

Input Output
8 3
2 18 26 20 5 28 36 39
1 5
3 3
3 8
4
0
3

Giải thích:

- Câu hỏi 1 trong đoạn [1, 5] có:

2 chia hết cho 2;

18 chia hết cho (1+8=9);

20 chia hết cho (2+0=2);

5 chia hết cho 5.

- Câu hỏi 2 đoạn [3, 3]: không có số đặc biệt.

- Câu hỏi 3 đoạn [3, 8]: có ba số đặc biệt là: 20, 5 và 36.

Ràng buộc:

  • \(30\%\) số test tương ứng với 3\(0\%\) số điểm có \(n \leq 10^{5},\ q = 1,\ l = 1,\ r = n\);

  • \(40\%\) số test tương ứng với 4\(0\%\) số điểm có \(n \leq 10^{5},\ q \leq 10^{3}\);

  • \(30\%\) số test tương ứng với \(30\%\) số điểm không có ràng buộc gì.

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. trungnam (6/7)
  2. sythai (5/8)
  3. npk1605 (5/10)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]