Lập trình đơn giản

Bạn chưa đăng nhập. Vui lòng đăng nhập để hỏi bài
Nguyễn Chơn Nhân

Hệ nhị phân (hay hệ đếm cơ số hai) là một hệ đếm dùng hai ký tự để biểu đạt một giá trị số, bằng tổng số các lũy thừa của 2. Hai ký tự đó thường là 0 và 1; chúng thường được dùng để biểu đạt hai giá trị hiệu điện thế tương ứng (có hiệu điện thế, hoặc hiệu điện thế cao là 1 và không có, hoặc thấp là 0). Do có ưu điểm tính toán đơn giản, dễ dàng thực hiện về mặt vật lý, chẳng hạn như trên các mạch điện tử, hệ nhị phân trở thành một phần kiến tạo căn bản trong các máy tính đương thời.

Sau khi đọc về hệ nhị phân, Sắn rất thích thú với các con số 0 và 1. Thấy Sắn thích, bố đố Sắn bài tập như sau: Cho một dãy số nguyên A gồm N phần tử và một số nguyên K. Bố đố sắn tìm ra một đoạn con ngắn nhất gồm các phần tử liên tiếp [L, R] thoả mãn:

- Chuyển hết các phần tử của đoạn con này sang hệ nhị phân, tính U là tổng các bit 1 của các số vừa chuyển được.

- U ≥ K.

Tuy nhiên bố cho dữ liệu lớn quá, Sắn đang bối rối. Các bạn hãy giúp Sắn nhé.

Dữ liệu nhập:

- Dòng 1 là hai số nguyên N và K.

- Dòng 2 là dãy số nguyên A.

Kết quả xuất ra:

- in một số nguyên duy nhất là độ dài đoạn con ngắn nhất thoả mãn yêu cầu của đề bài. Nếu không tìm được đoạn con nào thoả mãn hãy in -1.

Ràng buộc:

- 1 ≤ N ≤ 100000

- 0 ≤ A[i] ≤ 109

- 1 ≤ K ≤ 1012

Nguyễn Chơn Nhân
15 tháng 2 2020 lúc 16:29

bài dạng tìm kiếm nhé, giới hạn thời gian 1s

Khách vãng lai đã xóa

Các câu hỏi tương tự
Thu Hiền
Xem chi tiết
Tùng Bùi
Xem chi tiết
Cao Phạm Hà Anh
Xem chi tiết
Nguyễn Thị Thu Hiền
Xem chi tiết
PGD FF
Xem chi tiết
Mon_LAK
Xem chi tiết
Phạm Thị Kim Anh
Xem chi tiết
duyy
Xem chi tiết
Yến Phạm
Xem chi tiết