#5136. LONGSEQ - Dãy con dài nhất

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Cho dãy n số nguyên a_1,a_2,…,a_n và một số nguyên k . Tìm độ dài dãy con liên tiếp dài nhất của dãy số a_1,a_2,…,a_n có tổng là số nguyên dương dạng 2^m với 0≤m≤k .

Dữ liệu:

  • Dòng đầu chứa hai số nguyên n,k\ (1≤n≤10^5,0≤k≤30) ;
  • Dòng sau chứa n số nguyên a_1,a_2,…,a_n\ (|a_i|≤10^9,∀i=1..n) .

Các số trên cùng một dòng được ghi cách nhau một dấu cách.

Kết quả:

  • Ghi ra một số nguyên duy nhất là độ dài dãy con dài nhất tìm được (độ dài dãy con là số phần tử của dãy con đó, dãy con rỗng có độ dài là 0 ).

Ví dụ:

Dữ liệu:

5 2
1 -2 3 -4 5

Kết quả:

4

Giải thích:

  • 3 dãy con liên tiếp có tổng là lũy thừa cơ số 2 , cụ thể:
    • 1+(-2)+ 3=2^1 (độ dài 3 );
    • (-2)+3+(-4)+5=2^1 (độ dài 4 , dài nhất);
    • 3+(-4)+5=2^2 (độ dài 3 ).

Giới hạn:

  • Subtask \#1: 30\% số điểm của bài có 1≤n≤1000 ;
  • Subtask \#2: 30\% số điểm khác có a_i≥0,∀i=1..n ;
  • Subtask \#3: 40\% số điểm còn lại không có ràng buộc bổ sung.