Tích phần tử thiếu

Xem dạng PDF

Gửi bài giải

Điểm: 1300,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Người đăng:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho hai số nguyên dương ~n~, ~m~ và mảng ~a~ gồm ~n~ số nguyên dương ~a_1,a_2,…,a_n~.

Yêu cầu: Cho ~q~ truy vấn, mỗi truy vấn, cho hai số nguyên dương ~l,r(1 \le l,r \le n)~ cần tính tích các số từ 1 đến ~m~ mà không thuộc mảng ~a_l,a_l+1,...,a_r~. Do kết quả có thể rất lớn, bạn cần đưa ra kết quả sau khi chia lấy phần dư cho ~10^9+7~.

Input

  • Dòng đầu tiên gồm hai số nguyên dương ~n,m(n,m \le 10^5)~.
  • Dòng thứ hai gồm ~n~ số nguyên dương ~a_1,a_2,...,a_n(a_i \le m)~.
  • Dòng thứ ba gồm số nguyên dương ~q(q \le 10^5)~.
  • ~q~ dòng tiếp theo, mối truy vấn gồm hai số ~l,r~.

Output

  • In ra theo yêu cầu của đề bài.

Scoring

Subtask Score Constraints
~1~ ~20~% ~n,q \leq 2000~
~2~ ~30~% ~m \le 2000~
~3~ ~50~% Không có ràng buộc gì thêm.

Example input 1

5 8
1 4 5 7 8
2
2 5
1 3 

Example output 1

36
2016

Note 1

  • Truy vấn ~1~: ~1 \times 2 \times 3 \times 6 = 36 ~. Các số: ~4, 5, 7, 8~ thuộc đoạn ~a_l,a_l+1,...,a_r~.

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.