Module c
Expand description
ยงABC 347 C - Ideal Holidays
refs: https://atcoder.jp/contests/abc347/tasks/abc347_c
use proconio::input;
fn main() {
input! {
n: usize, a: usize, b: usize,
mut d: [usize; n],
}
let md = a + b;
d = d.iter().map(|&di| di % md).collect();
let dist = d
.iter()
.map(|&di| min_dist(di, d[0], md))
.collect::<Vec<isize>>();
let r = dist.iter().max().expect("Not Empty") - dist.iter().min().expect("Not Empty") + 1;
if r <= a as isize {
println!("Yes");
} else {
println!("No");
}
}
fn min_dist(v: usize, base: usize, md: usize) -> isize {
let omd = ((v + md) - base) as isize;
let sd = (v as isize) - (base as isize);
if omd.abs() < sd.abs() {
omd
} else {
sd
}
}