Module d
Expand description
ยงABC 393 D - Swap to Gather
refs: https://atcoder.jp/contests/abc393/tasks/abc393_d
use proconio::{input, marker::Chars};
fn main() {
input! {
n: usize,
s: Chars,
}
let mut left_one = 0;
let mut zero_positions = Vec::new();
for c in s {
match c {
'1' => left_one += 1,
'0' => zero_positions.push(left_one),
_ => {}
}
}
let number_of_one = n - zero_positions.len();
let ans = zero_positions
.iter()
.map(|&p| p.min(number_of_one - p))
.sum::<usize>();
println!("{ans}");
}