Module c
Expand description
ยงABC 385 C - Illuminate Buildings
refs: https://atcoder.jp/contests/abc385/tasks/abc385_c
use proconio::input;
fn main() {
input! {
n: usize,
h: [usize; n]
}
let mut ans = 1;
for i in 0..n {
ans = ans.max(max_step_count(&h, i));
}
println!("{ans}");
}
fn max_step_count(h: &[usize], start: usize) -> usize {
let mut cnt = 1;
for step in 1..h.len() {
let current_count = same_height_count(h, start, step);
cnt = cnt.max(current_count);
}
cnt
}
fn same_height_count(h: &[usize], start: usize, step: usize) -> usize {
let mut cnt = 1;
let mut k = start + step;
while k < h.len() {
if h[start] == h[k] {
cnt += 1;
} else {
break;
}
k += step;
}
cnt
}