B3: Trồng cây (HSG 9 Nghệ An 2024-2025)

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: 1400 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

An là chủ nhiệm của CLB Sống Xanh noniw mình sinh sống. Nhân dịp lễ Giáng sinh và chuẩn bị đón tết Nguyên đán, CLB phát động chiến dịch "Xanh quê hương" với nhiều hoạt động có ý nghĩa nhằm tạo môi trường Xanh - Sạch - Đẹp. Hoạt động đầu tiên trong chiến dịch là thực hiện trồng một hàng cây chạy dọc theo một tuyến đường.
Trên tuyến đường đã được đánh dấu \(n\) vị trí đều nhau để trồng cây, trong đó có một số vị trí đã được trồng cây từ trước. CLB gồm An và \(k\) thành viên sẽ trồng \(k + 1\) cây vào \(k + 1\) vị trí trống (mỗi người trồng một cây). Để thuận tiện quản lí, An muốn tìm một vị trí trồng cây của mình và vị trí của \(k\) thành viên, sao cho khoảng cách từ vị trí thành viên xa nhất đến vị trí của An là ngắn nhất.

Yêu cầu:

Hãy lập trình giúp An xác định giá trị nhỏ nhất của khoảng cách từ vị trí thành viên xa nhất đến vị trí của An.

Dữ liệu vào:

  • Dòng đầu tiên chưa hai số nguyên dương $n, k (1 \le k \le n \le 10^5)
  • Dòng thứ hai chứa một xâu nhị phân \(s\) gồm \(n\) phần tử biểu diễn trạng thái của \(n\) vị trí. Giá trị \(0\) biểu diễn vị trí trống, giá trị \(1\) biểu diễn vị trí đã có cây trồng.
    (Dữ liệu đảm bảo số phần tử có giá trị \(0\) trong xâu \(s\) luôn lớn hơn \(k\))

Kết quả:

Một số nguyên dương là giá trị nhỏ nhất của khoảng cách từ vị trí thành viên xa nhất đến vị trí của An.

Ví dụ

Test 1

Input
7 2
1010100
Output
2
Giải thích
  • Cách 1: Chọn các vị trí \(2,4,6\). An ở vị trí số \(4\) và khoảng cách dến thành viên xa nhất là \(|6 -4| = |2 - 4| = 2\)
  • Cách 2: Chọn các vị trí \(4,6,7\). An ở vị trí số \(6\) và khoảng cách đến thành viên xa nhất là \(|4 - 6| = 2\)
    Vậy An có thể chọn theo cách \(1\) hoặc cách \(2\) đều cho khoảng cách là \(2\); các cách chọn khác đều cho khoảng cách lớn hơn \(2\).

Giới hạn:

  • Có 60% test với \(1 \le n \le 10^3\)
  • Có 40% test với \(10^3 \le n \le 10^{5}\)

Bình luận

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

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