Submission #2173866


Source Code Expand

use std::str::FromStr;
use std::io::*;

pub fn main() {
    let i = stdin();
    let mut o = Vec::new();
    run(&mut i.lock(), &mut o);
    stdout().write_all(&o).unwrap();
}
type Pt = (isize, isize);

fn run<R: BufRead, W: Write>(i: &mut R, o: &mut W) {
    let mut i = ReadEx::from(i);
    let l = i.read_vec::<isize>();
    let xy_a = (l[0], l[1]);
    let xy_b = (l[2], l[3]);
    let t = l[4];
    let v = l[5];
    let n = i.read::<usize>();
    let mut xy = Vec::<Pt>::new();
    for _ in 0..n {
        xy.push(i.read2());
    }
    fn d(xy0: Pt, xy1: Pt) -> f64 {
        let d = ((xy0.0 - xy1.0) as f64, (xy0.1 - xy1.1) as f64);
        (d.0 * d.0 + d.1 * d.1).sqrt()
    }
    let tv = (t * v) as f64;
    let r = xy.iter().any(|&xy| d(xy, xy_a) + d(xy, xy_b) <= tv);
    writeln!(o, "{}", if r { "YES" } else { "NO" }).unwrap();
}

struct ReadEx<'a, R: BufRead + 'a> {
    r: &'a mut R,
    s: String,
}

macro_rules! fn_read {
        {$f:ident($($v:ident: $t:ident),*)} => {
            fn $f<$($t: FromStr),*>(&mut self) -> ($($t),*) {
                let i = &mut self.next().split(' ');
                $(
                    let $v = next(i);
                )*
                ($($v),*)
            }
        };
    }

impl<'a, R: BufRead + 'a> ReadEx<'a, R> {
    fn from(r: &'a mut R) -> Self {
        ReadEx {
            r: r,
            s: String::new(),
        }
    }
    fn next(&mut self) -> &str {
        self.s.clear();
        self.r.read_line(&mut self.s).unwrap();
        self.s.trim()
    }

    fn read<T: FromStr>(&mut self) -> T {
        self.next().parse().ok().unwrap()
    }
    fn_read! { read2(v1: T1, v2: T2) }

    fn read_vec<T: FromStr>(&mut self) -> Vec<T> {
        self.next()
            .split(' ')
            .map(|x| x.parse().ok().unwrap())
            .collect()
    }
}

fn next<'a, T: FromStr, I: std::iter::Iterator<Item = &'a str>>(i: &mut I) -> T {
    i.next().unwrap().parse().ok().unwrap()
}

Submission Info

Submission Time
Task C - 浮気調査
User frozenlib
Language Rust (1.15.1)
Score 100
Code Size 2041 Byte
Status AC
Exec Time 2 ms
Memory 4352 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 35
Set Name Test Cases
All sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt
Case Name Status Exec Time Memory
sample_01.txt AC 2 ms 4352 KB
sample_02.txt AC 2 ms 4352 KB
sample_03.txt AC 2 ms 4352 KB
sample_04.txt AC 2 ms 4352 KB
test_01.txt AC 2 ms 4352 KB
test_02.txt AC 2 ms 4352 KB
test_03.txt AC 2 ms 4352 KB
test_04.txt AC 2 ms 4352 KB
test_05.txt AC 2 ms 4352 KB
test_06.txt AC 2 ms 4352 KB
test_07.txt AC 2 ms 4352 KB
test_08.txt AC 2 ms 4352 KB
test_09.txt AC 2 ms 4352 KB
test_10.txt AC 2 ms 4352 KB
test_11.txt AC 2 ms 4352 KB
test_12.txt AC 2 ms 4352 KB
test_13.txt AC 2 ms 4352 KB
test_14.txt AC 2 ms 4352 KB
test_15.txt AC 2 ms 4352 KB
test_16.txt AC 2 ms 4352 KB
test_17.txt AC 2 ms 4352 KB
test_18.txt AC 2 ms 4352 KB
test_19.txt AC 2 ms 4352 KB
test_20.txt AC 2 ms 4352 KB
test_21.txt AC 2 ms 4352 KB
test_22.txt AC 2 ms 4352 KB
test_23.txt AC 2 ms 4352 KB
test_24.txt AC 2 ms 4352 KB
test_25.txt AC 2 ms 4352 KB
test_26.txt AC 2 ms 4352 KB
test_27.txt AC 2 ms 4352 KB
test_28.txt AC 2 ms 4352 KB
test_29.txt AC 2 ms 4352 KB
test_30.txt AC 2 ms 4352 KB
test_31.txt AC 2 ms 4352 KB