Submission #1593355


Source Code Expand

fn main() {
  let vec: Vec<i32> = read_vec();
  let (n,a,b): (i32,i32,i32) = (vec[0], vec[1], vec[2]);
  let sds: Vec<(String,i32)> = read_tuples(n as usize);
  
  let ans =
    sds.
      iter().
      map(|&(ref d, x)| if d.as_str() == "East" {norm(x,a,b)} else {-norm(x,a,b)}).
      sum::<i32>();
  
  match ans {
    x if x>0 => println!("East {}", ans),
    x if x<0 => println!("West {}", -ans),
    _        => println!("0")
  }

  fn norm(x: i32, a: i32, b: i32) -> i32 {std::cmp::min(std::cmp::max(x,a), b)}
}

fn read_tuple<T1: std::str::FromStr, T2: std::str::FromStr>() -> (T1, T2) {
  let mut buf = String::new();
  std::io::stdin().read_line(&mut buf).ok();
  let mut it = buf.trim().split_whitespace();
  let x = it.next().unwrap().parse::<T1>().ok().unwrap();
  let y = it.next().unwrap().parse::<T2>().ok().unwrap();
  (x, y)
}

fn read_tuples<T1: std::str::FromStr, T2: std::str::FromStr>(n: usize) -> Vec<(T1, T2)> {
  let mut vec: Vec<(T1, T2)> = vec![];
  for _ in 0 .. n {
    vec.push(read_tuple());
  }
  vec
}

fn read_vec<T: std::str::FromStr>() -> Vec<T> {
  let mut buf = String::new();
  std::io::stdin().read_line(&mut buf).ok();
  buf.trim().split_whitespace().map(|t| t.parse::<T>().ok().unwrap()).collect()
}

Submission Info

Submission Time
Task B - 双子とスイカ割り
User aimy
Language Rust (1.15.1)
Score 100
Code Size 1283 Byte
Status AC
Exec Time 2 ms
Memory 4352 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 36
Set Name Test Cases
Sample sample-01.txt, sample-02.txt, sample-03.txt
All sample-01.txt, sample-02.txt, sample-03.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, sample-01.txt, sample-02.txt, sample-03.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 1 ms 4352 KB
test-01.txt AC 2 ms 4352 KB
test-02.txt AC 1 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