Submission #68536983


Source Code Expand

use library::utils::input::Input;

fn solve(ip: &mut Input) {
    let n = ip.next::<usize>();
    let v = (0..n).map(|_|ip.pair::<u64,u64>()).collect::<Vec<_>>();
    
    let x = v.iter().map(|v| v.0).collect::<Vec<_>>();
    let y = v.iter().map(|v| v.1).collect::<Vec<_>>();
    
    let px = (*x.iter().max().unwrap() + *x.iter().min().unwrap()) / 2;
    let py = (*y.iter().max().unwrap() + *y.iter().min().unwrap()) / 2;
    
    let ans = v.iter()
        .map(|v| v.0.abs_diff(px).max(v.1.abs_diff(py)))
        .max()
        .unwrap();
    
    println!("{}", ans);

}

fn main() {
    static IS_MULTI_TEST_CASE :bool = false;
    let mut ip = Input::new();

    let t = if IS_MULTI_TEST_CASE {
        ip.next::<usize>()
    } else {
        1
    };

    for _ in 0..t {
        solve(&mut ip);
    }
}


// ===== bundled library =====

pub mod library {
    pub mod utils {
        pub mod input {
            use std::str::{from_utf8, FromStr};
            pub struct Input {
                buf: Vec<u8>,
                pos: usize,
            }
            impl Input {
                pub fn new() -> Self {
                    Self { buf: Vec::new(), pos: 0 }
                }
                pub fn next<T: FromStr>(&mut self) -> T {
                    while self.pos < self.buf.len()
                        && self.buf[self.pos].is_ascii_whitespace()
                    {
                        self.pos += 1;
                    }
                    let start = self.pos;
                    while self.pos < self.buf.len()
                        && !self.buf[self.pos].is_ascii_whitespace()
                    {
                        self.pos += 1;
                    }
                    if start == self.pos {
                        let mut input = String::new();
                        std::io::stdin()
                            .read_line(&mut input)
                            .expect("Failed to read line");
                        self.buf.clear();
                        self.buf.extend(input.as_bytes());
                        self.pos = 0;
                        return self.next();
                    }
                    from_utf8(&self.buf[start..self.pos])
                        .unwrap()
                        .parse::<T>()
                        .ok()
                        .expect(
                            &format!(
                                "Failed to parse input: {}", from_utf8(& self.buf[start
                                ..self.pos]).unwrap()
                            ),
                        )
                }
                #[allow(non_snake_case)]
                pub fn vector<T: FromStr>(&mut self, n: usize) -> Vec<T> {
                    (0..n).map(|_| self.next()).collect()
                }
                pub fn graph(
                    &mut self,
                    n: usize,
                    m: usize,
                    is_one_way: bool,
                ) -> Vec<Vec<usize>> {
                    let mut graph = vec![Vec::new(); n];
                    for _ in 0..m {
                        let (u, v): (usize, usize) = self.pair();
                        graph[u - 1].push(v - 1);
                        if !is_one_way {
                            graph[v - 1].push(u - 1);
                        }
                    }
                    graph
                }
                pub fn weighted_graph<T: Copy + FromStr>(
                    &mut self,
                    n: usize,
                    m: usize,
                    is_one_way: bool,
                    is_one_based: bool,
                ) -> Vec<Vec<(usize, T)>> {
                    let mut graph = vec![Vec::new(); n];
                    for _ in 0..m {
                        let (u, v, w): (usize, usize, T) = self.triple();
                        let u = if is_one_based { u - 1 } else { u };
                        let v = if is_one_based { v - 1 } else { v };
                        graph[u].push((v, w));
                        if !is_one_way {
                            graph[v].push((u, w));
                        }
                    }
                    graph
                }
                pub fn pair<T: FromStr, U: FromStr>(&mut self) -> (T, U) {
                    (self.next(), self.next())
                }
                pub fn triple<T: FromStr, U: FromStr, V: FromStr>(
                    &mut self,
                ) -> (T, U, V) {
                    (self.next(), self.next(), self.next())
                }
            }
        }
    }
}

Submission Info

Submission Time
Task C - King's Summit
User ardRiriy
Language Rust (rustc 1.70.0)
Score 300
Code Size 4723 Byte
Status AC
Exec Time 35 ms
Memory 8180 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 3
AC × 26
Set Name Test Cases
Sample sample00.txt, sample01.txt, sample02.txt
All sample00.txt, sample01.txt, sample02.txt, testcase00.txt, testcase01.txt, testcase02.txt, testcase03.txt, testcase04.txt, testcase05.txt, testcase06.txt, testcase07.txt, testcase08.txt, testcase09.txt, testcase10.txt, testcase11.txt, testcase12.txt, testcase13.txt, testcase14.txt, testcase15.txt, testcase16.txt, testcase17.txt, testcase18.txt, testcase19.txt, testcase20.txt, testcase21.txt, testcase22.txt
Case Name Status Exec Time Memory
sample00.txt AC 1 ms 2000 KiB
sample01.txt AC 1 ms 2064 KiB
sample02.txt AC 1 ms 1904 KiB
testcase00.txt AC 1 ms 1852 KiB
testcase01.txt AC 1 ms 1920 KiB
testcase02.txt AC 1 ms 1860 KiB
testcase03.txt AC 24 ms 6044 KiB
testcase04.txt AC 35 ms 8160 KiB
testcase05.txt AC 10 ms 3724 KiB
testcase06.txt AC 34 ms 8136 KiB
testcase07.txt AC 28 ms 6888 KiB
testcase08.txt AC 34 ms 8152 KiB
testcase09.txt AC 8 ms 3192 KiB
testcase10.txt AC 34 ms 8180 KiB
testcase11.txt AC 33 ms 7964 KiB
testcase12.txt AC 20 ms 5340 KiB
testcase13.txt AC 11 ms 3728 KiB
testcase14.txt AC 1 ms 2000 KiB
testcase15.txt AC 2 ms 2176 KiB
testcase16.txt AC 15 ms 4472 KiB
testcase17.txt AC 34 ms 7796 KiB
testcase18.txt AC 35 ms 7768 KiB
testcase19.txt AC 35 ms 8112 KiB
testcase20.txt AC 34 ms 8160 KiB
testcase21.txt AC 34 ms 8104 KiB
testcase22.txt AC 34 ms 7704 KiB