Nội dung Bài tập
Mã:
BORINGCANDY
Tên:
Chọn cách mua kẹo
Dạng thi:
oi
Thang điểm:
10 điểm
Giới hạn thời gian:
1 giây
Giới hạn bộ nhớ:
256 MB
Được tạo bởi:
duymanh03
Tom đang đi trên đường thì thấy một cửa hàng bán rất nhiều loại kẹo, vì đang thèm đồ ngọt nên Tom quyết định sẽ vào để mua kẹo ăn. Của hàng kẹo có n viên kẹo đang đặt trên một hàng ngang, loại
kẹo thứ i có độ ngọt là Ai.
Tom không muốn tốn thời gian chọn từng viên kẹo một nên anh quyết định sẽ chọn mua kẹo trong một đoạn liên tiếp. Hiện tại Tom đang có q cách chọn và mỗi cách chọn sẽ là một đoạn từ l đến r. Tuy nhiên, Tom không thích ăn những viên kẹo cùng một độ ngọt nhiều hơn k lần, việc đó sẽ làm cho anh cảm thấy nhạt nhẽo nên Tom muốn nhờ bạn là một lập trình viên tính nhanh cho anh ấy số loại kẹo xuất hiện không quá k lần với mỗi cách chọn kẹo để anh ấy quyết định được cách chọn nào sẽ là hợp lí nhất.
Lưu ý: Những viên kẹo có độ ngọt giống nhau sẽ thuộc cùng một loại kẹo.

Input :
  • Dòng đầu tiên gồm 2 số nguyên dương nk (k  ≤ 2 x 105).
  • Dòng thứ 2 gồm n số nguyên dương Ai tương ứng với độ ngọt của viên kẹo thứ i (Ai  n).
  • Dòng thứ 3 gồm số nguyên dương q (≤ 2 x 105).
  • q dòng tiếp theo mỗi dòng gồm 2 số nguyên dương l, r tương ứng với một cách chọn (l  r  n).
Output : 
  • Gồm q dòng tương ứng với kết quả mỗi cách chọn kẹo.
Ví dụ:

Input

Output

9 2

1 3 1 3 2 2 1 1 2

9

1 6

2 7

5 9

6 9

7 8

1 4

3 6

4 8

2 8

3

3

1

2

1

2

3

3

2


Giải thích
  • Ở cách chọn kẹo thứ 1, các loại kẹo có độ ngọt 1, 2, 3 là những loại kẹo không xuất hiện quá k lần.
  • Ở cách chọn kẹo thứ 3, loại kẹo có độ ngọt 1 là loại kẹo không xuất hiện quá k lần.
Giới hạn:
• Subtask 1: nq ≤ 2000 (25%).
• Subtask 2: nq ≤ 2 x 10(25%).
• Subtask 3: Ai ≤ 20 (25%).
• Subtask 4: Không có ràng buộc gì thêm (25%).

    Quảng cáo
       Ngôn ngữ : 

       Theme : 
Mời bạn soạn code



		



      Ai có thể xem bài này : 

Thông tin



Phần thảo luận