Nội dung Bài tập
Mã:
HARDCANDY
Tên:
Chọn cách mua kẹo (khó)
Dạng thi:
acm
Thang điểm:
1 điểm
Giới hạn thời gian:
1.5 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.

Sau khi chọn được những viên kẹo mình muốn mua thì Tom nhận ra mình đã quên ví tiền ở nhà mà nhà anh thì lại rất xa chỗ này.

Chủ quán thấy vậy nên quyết định đưa ra một thử thách cho Tom. Nếu Tom thắng thì anh sẽ được lấy hết toàn bộ kẹo ở đây mà không mất đồng nào, nhưng nếu thua thì anh sẽ phải ở lại đây cả tháng để bán kẹo không lương cho chủ quán. Vì Tom là một thằng liều nên anh quyết định sẽ chấp nhận thử thách này.

Thấy 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 vì việc đó sẽ làm cho anh cảm thấy nhạt nhẽo. Vì thế chủ quán yêu cầu Tom tính nhanh số loại kẹo xuất hiện không quá k lần với mỗi đoạn kẹo liên tiếp từ l đến r đang có trong cửa hàng mà chủ quán đưa ra. Để chắc cú thì chủ quán sẽ không đưa trước các đoạn đó cho Tom mà anh ấy sẽ yêu cầu Tom tính luôn kết quả khi được cho một đoạn kẹo. Tôm bắt đầu cảm thấy khó nhằn trước thử thách ấy và có khả năng cao anh sẽ không được về nhà trong tháng tới nên Tom muốn nhờ bạn là một lập trình viên giúp anh ấy giải thử thách này.
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, với số đoạn mà chủ quán sẽ đưa ra sẽ q + 1 đoạn (≤ 2 x 105).
  • Đoạn kẹo đầu tiên chủ quán đưa ra sẽ là (1, min(2 x kn)).
  • Gọi last là kết quả của đoạn trước, các đoạn sau sẽ được đưa ra với công thức:
            base = 10+ 7.
            l = (lold x base last - 1) mod n + 1.
            r = (roldbase + last - 1) mod n + 1.
            Nếu l > r thì đổi chỗ l, r.
Output : 
  • Gồm q + 1 dòng tương ứng với kết quả mỗi đoạn kẹo được đưa ra.
Ví dụ:

Input

Output

9 2

1 2 3 1 1 2 3 2 3

2

3

2

2



Giải thích
  • Các đoạn kẹo mà chủ quán đã đưa ra là (1, 4), (2, 8), (3, 9).
  • Ở đoạ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.
  • Ở đoạn kẹo thứ 3, các loại kẹo có độ ngọt 1, 2 là những loại kẹo không xuất hiện quá k lần.

    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