#![allow(unused_imports)] fn main() { input! { n: usize, a: [i64; 2*n], b: [i64; 2*n], } let mut c: Vec<_> = std::iter::zip(a, b).collect(); c.sort_by_key(|(a, b)| a + b); let mut ans = 0; for (i, (a, b)) in c.into_iter().enumerate() { ans += if i % 2 == 0 { a } else { -b }; } println!("{ans}"); } /* */ use proconio::{input, marker::*}; use std::{cmp::Reverse, collections::*}; #[macro_export] macro_rules! chmax { ($a:expr, $b:expr) => {{ let tmp = $b; if $a < tmp { $a = tmp; true } else { false } }}; } #[macro_export] macro_rules! chmin { ($a:expr, $b:expr) => {{ let tmp = $b; if $a > tmp { $a = tmp; true } else { false } }}; } #[macro_export] /// mvec![] macro_rules! mvec { ($val:expr; ()) => { $val }; ($val:expr; ($size:expr $(,$rest:expr)*)) => { vec![mvec![$val; ($($rest),*)]; $size] }; }