fn main() { let mut n = String::new(); std::io::stdin().read_line(&mut n).ok(); let n: usize = n.trim().parse().unwrap(); let mut a = String::new(); std::io::stdin().read_line(&mut a).ok(); let a: Vec = a.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let mut b = String::new(); std::io::stdin().read_line(&mut b).ok(); let b: Vec = b.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let mut pairs = (0..n).map(|i| (a[i], b[i])).collect::>(); pairs.sort(); let mut bminus = pairs.iter().map(|&(_, b)| b).sum::(); let mut bplus = 0isize; let mut summary = (0..n).map(|i| pairs[i].1 * (pairs[0].0 - pairs[i].0).abs()).sum::(); let mut x = pairs[0].0; let mut minval = summary; for i in 1..n { let (na, nb) = pairs[i]; let (pa, pb) = pairs[i-1]; let diff = na - pa; bminus -= pb; bplus += pb; summary = summary - bminus * diff + bplus * diff; if summary < minval { x = na; minval = summary; } } println!("{} {}", x, minval); }