Bài 3 (HSG 9 Hải Phòng 2022-2023)

Xem PDF




Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho mảng \(A\) gồm \(n\) số nguyên không âm \(a_1, a_2, \ldots, a_n\) và một số nguyên dương \(k\). Yêu cầu: viết chương trình tìm đoạn con liên tiếp dài nhất có tổng các phần tử chia hết cho \(k\).

Input

  • Dòng một chứa hai số nguyên dương \(n, k\):
    • \(1 \le n \le 100\,000\)
    • \(1 \le k \le 1000\)
  • Dòng thứ hai chứa \(n\) số nguyên không âm \(a_1, a_2, \ldots, a_n\):
    • \(0 \le a_i \le 10^8\), \(\forall i=\overline{1;n}\)
  • Các số nguyên trong file dữ liệu được ghi cách nhau ít nhất một dấu cách trống.

Output

  • Ghi ra một số nguyên duy nhất là độ dài lớn nhất của đoạn con tìm được.

Example

Test 1

Input
7 5
7 1 4 3 2 5 9
Output
5
Note

Có nhiều đoạn con liên tiếp có tổng chia hết cho \(k=5\) như:

\[a_4+a_5+a_6=3+2+5=10\vdots k\]
\[a_1+a_2+a_3+a_4=7+1+4+3=15\vdots k\]

Đoạn con dài nhất có độ dài bằng \(5\) là:

\[a_2+a_3+a_4+a_5+a_6=1+4+3+2+5=15\vdots k\]

Scoring

  • \(25\%\) số test tương ứng với \(25\%\) số điểm có \(n \le 100\);
  • \(50\%\) số test tương ứng với \(50\%\) số điểm có \(100 < n \le 10\,000\);
  • \(25\%\) số test tương ứng với \(25\%\) số điểm có \(10\,000 < n \le 100\,000\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.