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

nhất (doanconnn.*)

Cho dãy \(A\)\(n\) số nguyên dương \(a_{1},a_{2},\ldots,a_{n}\) và số nguyên \(k\) \((1 \leq k \leq \ n \leq 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:

+ 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},\ldots,a_{n}\ (1 \leq a_{i} \leq 10^{7},\ \ \forall i = \overline{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 Output
8 2
2 6 3 4 8 10 9 10
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 \leq 10^{3},\ k \leq 10^{3},\ a_{i} \leq 10^{6}\);

  • \(30\%\) số test tương ứng với \(30\%\) số điểm có n \(\leq 10^{5},\ k\ \leq 10^{4}{,\ a}_{i} \leq 10^{6}\);

  • \(10\%\) số test tương ứng với \(10\%\) số điểm có n \(\leq 10^{6},\ k\ \leq 10^{6}{,\ a}_{i} \leq 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. andanhnek (14/32)
  2. _winnguyen_ (7/8)
  3. thang8a1l2 (4/11)
Trong 7 ngày
  1. cosu (48/85)
  2. hlammm (16/32)
  3. andanhnek (16/35)
Trong 30 ngày
  1. cosu (100/157)
  2. tranducbaolam02 (90/129)
  3. vo_tan_dung (58/128)
Thống kê
AC/Sub: 120817/226949
Pascal: 18142
C++: 157988
Python: 50747
Lượt xem/tải tests: 43021

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