use proconio::input; fn main(){ input!{ n: usize, a: [i64; 2*n], } let mut b = Vec::<(i64, usize)>::new(); for i in 0..2*n{ b.push((a[i], i+1)); } b.sort(); let l = &b[..n]; let r = &b[n..]; let mut ans: i64 = 0; for i in 0..n{ ans += (l[i].0-r[n-i-1].0).abs(); } println!("{}", ans); for i in 0..n{ println!("{} {}", l[i].1, r[n-i-1].1); } }