use itertools::Itertools; use proconio::{input, marker::Usize1}; fn main() { input! { (n, q, s, t, c): (usize, usize, Usize1, Usize1, usize), uv: [(Usize1, Usize1); q], } let calc_naive_cost = |from: usize, to: usize| (n + to - from) % n; let solve = |u: usize, v: usize| { let uv = calc_naive_cost(u, v); let us = calc_naive_cost(u, s); let tv = calc_naive_cost(t, v); uv.min(us + c + tv) }; let output = uv.iter().map(|&(u, v)| solve(u, v)).join("\n"); println!("{output}"); }