Bài 2. Số đặc biệt (HSG 9 Hải Phòng 2023-2024)

Xem PDF




Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1000 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Số đặc biệt là số có giá trị chia hết cho tổng các chữ số của nó. Ví dụ số \(2\) và \(18\) là số đặc biệt vì: \(2\) chia hết cho \(2\); \(18\) chia hết cho \(9\) (vì \(1+8=9\)).

Cho dãy \(A\) có \(n\) số nguyên dương \(\{a_1, a_2, \ldots, a_n\}\).

Yêu cầu: Có \(q\) câu hỏi, mỗi câu hỏi cho biết hai số \(l, r\) \((1 \le l \le r \le n)\); hãy cho biết trong mỗi đoạn \([l, r]\) của dãy \(A\) có bao nhiêu phần tử là số đặc biệt.

Input

  • Dòng đầu gồm hai số nguyên dương \(n, q\).
  • Dòng thứ hai gồm \(n\) số nguyên dương \(a_1, a_2, \ldots, a_n\).
  • \(q\) dòng tiếp theo, mỗi dòng gồm hai số \(l\) và \(r\).
  • Các số nguyên trong tệp dữ liệu được ghi cách nhau ít nhất một dấu cách trống.

Constraints

  • \(1 \le n \le 10^5\)
  • \(1 \le q \le 10^5\)
  • \(1 \le a_i \le 10^9\) với mọi \(i = \overline{1, n}\)

Output

  • Ghi ra \(q\) dòng, mỗi dòng là số lượng số đặc biệt trong đoạn \([l, r]\) tương ứng.

Example

Test 1

Input
8 3
2 18 26 20 5 28 36 39
1 5
3 3
3 8
Output
4
0
3
Note
  • Câu hỏi 1: đoạn \([1, 5]\) có \(4\) số đặc biệt là \(2, 18, 20\) và \(5\), vì:
    • \(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ó \(3\) số đặc biệt là: \(20, 5\) và \(36\).

Scoring

  • Subtask \(1\) (\(30\%\) số điểm): \(n \le 10^5, q = 1, l = 1, r = n\).
  • Subtask \(2\) (\(40\%\) số điểm): \(n \le 10^5, q \le 10^3\).
  • Subtask \(3\) (\(30\%\) số điểm): không có ràng buộc gì thêm.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.