Submission #1793286


Source Code Expand

fn main() {
  let n = get::val::<usize>();
  let xys = get::tuples::<isize,isize>(n);
  
  let mut ans = 0;
  for i in 0 .. n-2 {
    for j in i+1 .. n-1 {
      for k in j+1 .. n {
        let (xi,yi) = xys[i];
        let (xj,yj) = xys[j];
        let (xk,yk) = xys[k];
        let (xi,yi) = (xi-xk, yi-yk);
        let (xj,yj) = (xj-xk, yj-yk);
        let s = xi*yj - xj*yi;
        if s != 0 && s%2 == 0 {ans += 1}
      }
    }
  }
  
  println!("{}", ans)
}

#[allow(dead_code)]
mod get {
  use std::io::*;
  use std::str::*;

  pub fn val<T: FromStr>() -> T {
    let mut buf = String::new();
    let s = stdin();
    s.lock().read_line(&mut buf).ok();
    buf.trim_right().parse::<T>().ok().unwrap()
  }

  pub fn vals<T: FromStr>(n: usize) -> Vec<T> {
    let mut vec: Vec<T> = vec![];
    for _ in 0 .. n {
      vec.push(val());
    }
    vec
  }

  pub fn tuple<T1: FromStr, T2: FromStr>() -> (T1, T2) {
    let mut buf = String::new();
    let s = stdin();
    s.lock().read_line(&mut buf).ok();
    let mut it = buf.trim_right().split_whitespace();
    let x = it.next().unwrap().parse::<T1>().ok().unwrap();
    let y = it.next().unwrap().parse::<T2>().ok().unwrap();
    (x, y)
  }

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

  pub fn tuple3<T1: FromStr, T2: FromStr, T3: FromStr>() -> (T1, T2, T3) {
    let mut buf = String::new();
    let s = stdin();
    s.lock().read_line(&mut buf).ok();
    let mut it = buf.trim_right().split_whitespace();
    let x = it.next().unwrap().parse::<T1>().ok().unwrap();
    let y = it.next().unwrap().parse::<T2>().ok().unwrap();
    let z = it.next().unwrap().parse::<T3>().ok().unwrap();
    (x, y, z)
  }

  pub fn tuple3s<T1: FromStr, T2: FromStr, T3: FromStr>(n: usize) -> Vec<(T1, T2, T3)> {
    let mut vec: Vec<(T1, T2, T3)> = vec![];
    for _ in 0 .. n {
      vec.push(tuple3());
    }
    vec
  }

  pub fn list<T: FromStr>() -> Vec<T> {
    let mut buf = String::new();
    let s = stdin();
    s.lock().read_line(&mut buf).ok();
    buf.trim_right().split_whitespace().map(|t| t.parse::<T>().ok().unwrap()).collect()
  }

  pub fn lists<T: FromStr + Ord>(h: usize) -> Vec<Vec<T>> {
    let mut mat: Vec<Vec<T>> = vec![];
    for _ in 0 .. h {
      let mut list = list();
      list.sort();
      mat.push(list);
    }
    mat
  }

  pub fn chars() -> Vec<char> {
    let mut buf = String::new();
    let s = stdin();
    s.lock().read_line(&mut buf).ok();
    buf.trim_right().chars().collect()
  }
}

Submission Info

Submission Time
Task B - 格子点と整数
User aimy
Language Rust (1.15.1)
Score 100
Code Size 2707 Byte
Status AC
Exec Time 3 ms
Memory 4352 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 75
Set Name Test Cases
All case_01.txt, case_02.txt, case_03.txt, case_04.txt, case_05.txt, case_06.txt, case_07.txt, case_08.txt, case_09.txt, case_10.txt, case_11.txt, case_12.txt, case_13.txt, case_14.txt, case_15.txt, case_16.txt, case_17.txt, case_18.txt, case_19.txt, case_20.txt, case_21.txt, case_22.txt, case_23.txt, case_24.txt, case_25.txt, case_26.txt, case_27.txt, case_28.txt, case_29.txt, case_30.txt, case_31.txt, case_32.txt, case_33.txt, case_34.txt, case_35.txt, case_36.txt, case_37.txt, case_38.txt, case_39.txt, case_40.txt, case_41.txt, case_42.txt, case_43.txt, case_44.txt, case_45.txt, case_46.txt, case_47.txt, case_48.txt, case_49.txt, case_50.txt, case_51.txt, case_52.txt, case_53.txt, case_54.txt, case_55.txt, case_56.txt, case_57.txt, case_58.txt, case_59.txt, case_60.txt, case_61.txt, case_62.txt, case_63.txt, case_64.txt, case_65.txt, case_66.txt, case_67.txt, case_68.txt, case_69.txt, case_70.txt, case_71.txt, sample_1.txt, sample_2.txt, sample_3.txt, sample_4.txt
Case Name Status Exec Time Memory
case_01.txt AC 2 ms 4352 KB
case_02.txt AC 3 ms 4352 KB
case_03.txt AC 2 ms 4352 KB
case_04.txt AC 2 ms 4352 KB
case_05.txt AC 2 ms 4352 KB
case_06.txt AC 3 ms 4352 KB
case_07.txt AC 2 ms 4352 KB
case_08.txt AC 2 ms 4352 KB
case_09.txt AC 3 ms 4352 KB
case_10.txt AC 2 ms 4352 KB
case_11.txt AC 2 ms 4352 KB
case_12.txt AC 2 ms 4352 KB
case_13.txt AC 2 ms 4352 KB
case_14.txt AC 2 ms 4352 KB
case_15.txt AC 2 ms 4352 KB
case_16.txt AC 2 ms 4352 KB
case_17.txt AC 2 ms 4352 KB
case_18.txt AC 2 ms 4352 KB
case_19.txt AC 2 ms 4352 KB
case_20.txt AC 2 ms 4352 KB
case_21.txt AC 3 ms 4352 KB
case_22.txt AC 2 ms 4352 KB
case_23.txt AC 2 ms 4352 KB
case_24.txt AC 2 ms 4352 KB
case_25.txt AC 2 ms 4352 KB
case_26.txt AC 2 ms 4352 KB
case_27.txt AC 2 ms 4352 KB
case_28.txt AC 2 ms 4352 KB
case_29.txt AC 2 ms 4352 KB
case_30.txt AC 2 ms 4352 KB
case_31.txt AC 2 ms 4352 KB
case_32.txt AC 2 ms 4352 KB
case_33.txt AC 2 ms 4352 KB
case_34.txt AC 2 ms 4352 KB
case_35.txt AC 2 ms 4352 KB
case_36.txt AC 2 ms 4352 KB
case_37.txt AC 2 ms 4352 KB
case_38.txt AC 2 ms 4352 KB
case_39.txt AC 2 ms 4352 KB
case_40.txt AC 2 ms 4352 KB
case_41.txt AC 2 ms 4352 KB
case_42.txt AC 2 ms 4352 KB
case_43.txt AC 2 ms 4352 KB
case_44.txt AC 2 ms 4352 KB
case_45.txt AC 2 ms 4352 KB
case_46.txt AC 2 ms 4352 KB
case_47.txt AC 2 ms 4352 KB
case_48.txt AC 2 ms 4352 KB
case_49.txt AC 2 ms 4352 KB
case_50.txt AC 3 ms 4352 KB
case_51.txt AC 3 ms 4352 KB
case_52.txt AC 3 ms 4352 KB
case_53.txt AC 3 ms 4352 KB
case_54.txt AC 3 ms 4352 KB
case_55.txt AC 3 ms 4352 KB
case_56.txt AC 3 ms 4352 KB
case_57.txt AC 3 ms 4352 KB
case_58.txt AC 3 ms 4352 KB
case_59.txt AC 3 ms 4352 KB
case_60.txt AC 3 ms 4352 KB
case_61.txt AC 3 ms 4352 KB
case_62.txt AC 3 ms 4352 KB
case_63.txt AC 3 ms 4352 KB
case_64.txt AC 3 ms 4352 KB
case_65.txt AC 3 ms 4352 KB
case_66.txt AC 3 ms 4352 KB
case_67.txt AC 3 ms 4352 KB
case_68.txt AC 3 ms 4352 KB
case_69.txt AC 3 ms 4352 KB
case_70.txt AC 2 ms 4352 KB
case_71.txt AC 2 ms 4352 KB
sample_1.txt AC 2 ms 4352 KB
sample_2.txt AC 2 ms 4352 KB
sample_3.txt AC 2 ms 4352 KB
sample_4.txt AC 2 ms 4352 KB