use itertools::Itertools; use proconio::{input, marker::Usize1}; fn main() { input! { n: usize, q: usize, s: Usize1, t: Usize1, c: usize, queries: [(Usize1, Usize1); q], } let dist = |a: usize, b: usize| { if a <= b { b - a } else { b + n - a } }; let ans = queries .iter() .map(|&(u, v)| { let cand1 = dist(u, v); let cand2 = dist(u, s) + c + dist(t, v); cand1.min(cand2) }) .join("\n"); println!("{ans}"); }