TÌM ĐOẠN CON NGẮN NHẤT

Cho dãy ~ A ~ có ~ n ~ số nguyên dương ~ a_1,a_2,…,a_n ~ và số nguyên ~ k ~ ~ (1≤k≤ n≤10^6) ~.

Yêu cầu: Viết chương trình tìm đoạn con ngắn nhất có chứa đủ ~ k ~ phần tử mà số lượng ước của nó là nhiều nhất trong dãy.

Dữ liệu vào:

  • Dòng một chứa hai số nguyên dương ~ n,k ~;
  • Dòng thứ hai chứa~ n ~ số nguyên dương ~ a_1,a_2,…,a_n (1≤a_i≤10^7, ∀i=1;n) ~.

Kết quả:

  • Ghi một số nguyên thoả mãn yêu cầu, trường hợp không có đoạn con nào đủ ~ k ~ phần tử thoả mãn yêu cầu thì ghi ~ -1 ~.

Ví dụ:

Input

8 2
2 6 3 4 8 10 9 10 
Output
2 

Giải thích:

  • Các phần tử có cùng số lượng ước nhiều nhất là 6, 8 và 10 (cùng có 4 ước)
  • Đoạn con ngắn nhất chứa đủ 2 phần tử thoả mãn yêu cầu là đoạn [5, 6] có giá trị 8, 10 độ dài là 2.

Ràng buộc:

  • 50% số test tương ứng với 50% số điểm có ~ n≤10^3, k≤10^3, a_i≤10^6 ~;
  • 30% số test tương ứng với 30% số điểm có n ~ ≤105, k ≤10^4, a_i≤10^6 ~;
  • 10% số test tương ứng với 10% số điểm có n ~ ≤10^6, k ≤10^6, a_i≤10^6 ~;
  • 10% số test tương ứng với 10% 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. nguyenvuquang (12/23)
  2. ilpnvm (12/26)
  3. nsduc83 (9/9)
Trong 7 ngày
  1. hienpham (163/213)
  2. ducchinh (159/209)
  3. bichngoc (146/209)
Trong 30 ngày
  1. ducchinh (169/223)
  2. hienpham (163/213)
  3. tgtam2022 (150/369)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 37719

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