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 |
|
|
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 |