use std::io::*; use std::str::FromStr; //use std::num; //use std::cmp; fn main() { let n: usize = read(); let mut a: Vec = vec![0.0; n]; let mut tmp: f64 = 0.0; for _i in 0..a.len(){ a[_i] = read(); } for _j in 0..a.len() - 1{ for _i in 0..a.len() - 1{ if a[_i] > a[_i + 1]{ tmp = a[_i]; a[_i] = a[_i + 1]; a[_i + 1] = tmp as f64; } } } if n % 2 == 1{ println!("{}",a[(n - 1) / 2]) }else{ println!("{}",(a[n / 2 - 1] + a[n / 2]) / 2.0); } } pub fn upper_lower(x: char) -> char{ let result: char; if x.is_uppercase(){ result = x.to_ascii_lowercase(); } else if x.is_lowercase(){ result = x.to_ascii_uppercase(); } else { result = x; } result } pub fn max(x: isize, y: isize, z: isize) -> isize { let result; if x >= y && y >= z { result = x; } else if x >= z && z >= y { result = x; } else if y >= x && x >= z { result = y; } else if y >= z && z >= x { result = y; } else if z >= x && x >= y { result = z; } else { result = z; } result } pub fn min(x: isize, y: isize, z: isize) -> isize { let result; if x <= y && y <= z { result = x; } else if x <= z && z <= y { result = x; } else if y <= x && x <= z { result = y; } else if y <= z && z <= x { result = y; } else if z <= x && x <= y { result = z; } else { result = z; } result } pub fn read_line() -> String { let mut s: String = String::new(); std::io::stdin().read_line(&mut s).ok(); s } pub fn read() -> T { let stdin = stdin(); let stdin = stdin.lock(); let token: String = stdin .bytes() .map(|c| c.expect("failed to read char") as char) .skip_while(|c| c.is_whitespace()) .take_while(|c| !c.is_whitespace()) .collect(); token.parse().ok().expect("failed to parse token") } pub fn read_array() -> Vec { let array: String = read(); let chars: Vec = array.trim().chars().collect::>(); chars } pub fn get_data() -> Vec { let mut s: String = String::new(); std::io::stdin().read_line(&mut s).ok(); let vec: Vec = s .trim() .split_whitespace() .map(|e| e.parse().ok().unwrap()) .collect(); vec } pub fn get_chars() -> Vec { let mut s: String = String::new(); std::io::stdin().read_line(&mut s).ok(); let vec: Vec = s.trim().chars().collect::>(); vec }