Submission #63213542
Source Code Expand
#![allow(unused)]
fn main() {
let inp = readv::<u64>();
let (n, m) = (inp[0] as usize, inp[1]);
let arr = readv::<u64>();
// x = a[0] * (p[0] + 0.5)
// x = a[1] * (p[1] + 0.5)
// ...
// =>
// x = (a[0] / 2) * (2 * p[0] + 1)
// x = (a[1] / 2) * (2 * p[1] + 1)
// ...
// => x is lcm(a[i] / 2) and (x / (a[i] / 2)) is odd
let x = arr.iter().fold(1, |acc, x| lcm(acc, *x / 2));
if x > m {
println!("0");
return;
}
for a in arr {
if (x / (a / 2)) % 2 == 0 {
println!("0");
return;
}
}
// number of multiples of x that is odd in 1..=M
// = (number of multiples of x in 1..=M) - (number of multiples of 2x in 1..=M)
let ans = m / x - m / (2 * x);
println!("{}", ans);
}
fn gcd(a: u64, b: u64) -> u64 {
if b == 0 {
a
} else {
gcd(b, a % b)
}
}
fn lcm(a: u64, b: u64) -> u64 {
(a / gcd(a, b)).saturating_mul(b)
}
fn read<T: std::str::FromStr>() -> T {
let mut s = String::new();
std::io::stdin().read_line(&mut s).ok();
s.trim().parse().ok().unwrap()
}
fn readv<T: std::str::FromStr>() -> Vec<T> {
read::<String>()
.split_ascii_whitespace()
.map(|t| t.parse().ok().unwrap())
.collect()
}
fn reads() -> Vec<char> {
read::<String>().chars().collect()
}
fn mapv<T, S, F: Fn(&T) -> S>(arr: &Vec<T>, f: F) -> Vec<S> {
arr.iter().map(f).collect()
}
fn join<T: ToString>(arr: &[T], sep: &str) -> String {
arr.iter()
.map(|x| x.to_string())
.collect::<Vec<String>>()
.join(sep)
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Semi Common Multiple |
| User | amoshuangyc |
| Language | Rust (rustc 1.70.0) |
| Score | 400 |
| Code Size | 1689 Byte |
| Status | AC |
| Exec Time | 11 ms |
| Memory | 4072 KiB |
Judge Result
| Set Name | Sample | All | after_contest | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | 0 / 0 | ||||||
| Status |
|
|
|
| Set Name | Test Cases |
|---|---|
| Sample | s1.txt, s2.txt, s3.txt |
| All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 53.txt, 54.txt, 55.txt, 56.txt, 57.txt, 58.txt, 59.txt, 60.txt, 61.txt, 62.txt, 63.txt, 64.txt, 65.txt, 66.txt, 67.txt, 68.txt, 69.txt, 70.txt, 71.txt, 72.txt, 73.txt, 74.txt, 75.txt, 76.txt, 77.txt, 78.txt, 79.txt, 80.txt, 81.txt, 82.txt, 83.txt, 84.txt, 85.txt, 86.txt, 87.txt, 88.txt, 89.txt, 90.txt, 91.txt, s1.txt, s2.txt, s3.txt |
| after_contest | after_contest_01 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01.txt | AC | 1 ms | 2028 KiB |
| 02.txt | AC | 1 ms | 2416 KiB |
| 03.txt | AC | 0 ms | 1868 KiB |
| 04.txt | AC | 2 ms | 2676 KiB |
| 05.txt | AC | 0 ms | 1920 KiB |
| 06.txt | AC | 1 ms | 2008 KiB |
| 07.txt | AC | 0 ms | 1888 KiB |
| 08.txt | AC | 1 ms | 1988 KiB |
| 09.txt | AC | 0 ms | 1884 KiB |
| 10.txt | AC | 2 ms | 2452 KiB |
| 11.txt | AC | 0 ms | 1888 KiB |
| 12.txt | AC | 2 ms | 2636 KiB |
| 13.txt | AC | 1 ms | 1896 KiB |
| 14.txt | AC | 4 ms | 3872 KiB |
| 15.txt | AC | 0 ms | 1916 KiB |
| 16.txt | AC | 1 ms | 1960 KiB |
| 17.txt | AC | 0 ms | 1824 KiB |
| 18.txt | AC | 2 ms | 2476 KiB |
| 19.txt | AC | 0 ms | 1896 KiB |
| 20.txt | AC | 2 ms | 2500 KiB |
| 21.txt | AC | 1 ms | 2024 KiB |
| 22.txt | AC | 3 ms | 3140 KiB |
| 23.txt | AC | 0 ms | 2032 KiB |
| 24.txt | AC | 3 ms | 3096 KiB |
| 25.txt | AC | 0 ms | 1756 KiB |
| 26.txt | AC | 3 ms | 3792 KiB |
| 27.txt | AC | 0 ms | 1904 KiB |
| 28.txt | AC | 2 ms | 2444 KiB |
| 29.txt | AC | 1 ms | 1920 KiB |
| 30.txt | AC | 2 ms | 2552 KiB |
| 31.txt | AC | 0 ms | 2028 KiB |
| 32.txt | AC | 4 ms | 3592 KiB |
| 33.txt | AC | 0 ms | 1888 KiB |
| 34.txt | AC | 1 ms | 2164 KiB |
| 35.txt | AC | 0 ms | 1852 KiB |
| 36.txt | AC | 1 ms | 2284 KiB |
| 37.txt | AC | 1 ms | 1892 KiB |
| 38.txt | AC | 3 ms | 2760 KiB |
| 39.txt | AC | 0 ms | 1892 KiB |
| 40.txt | AC | 1 ms | 2204 KiB |
| 41.txt | AC | 0 ms | 1888 KiB |
| 42.txt | AC | 3 ms | 3368 KiB |
| 43.txt | AC | 0 ms | 1868 KiB |
| 44.txt | AC | 3 ms | 3384 KiB |
| 45.txt | AC | 1 ms | 1868 KiB |
| 46.txt | AC | 1 ms | 1952 KiB |
| 47.txt | AC | 0 ms | 2024 KiB |
| 48.txt | AC | 3 ms | 3200 KiB |
| 53.txt | AC | 1 ms | 1884 KiB |
| 54.txt | AC | 3 ms | 3108 KiB |
| 55.txt | AC | 0 ms | 2016 KiB |
| 56.txt | AC | 1 ms | 2040 KiB |
| 57.txt | AC | 0 ms | 1900 KiB |
| 58.txt | AC | 2 ms | 2496 KiB |
| 59.txt | AC | 0 ms | 1956 KiB |
| 60.txt | AC | 2 ms | 2388 KiB |
| 61.txt | AC | 0 ms | 1856 KiB |
| 62.txt | AC | 1 ms | 1916 KiB |
| 63.txt | AC | 1 ms | 2020 KiB |
| 64.txt | AC | 3 ms | 3616 KiB |
| 65.txt | AC | 0 ms | 1888 KiB |
| 66.txt | AC | 3 ms | 3324 KiB |
| 67.txt | AC | 0 ms | 1948 KiB |
| 68.txt | AC | 2 ms | 2424 KiB |
| 69.txt | AC | 0 ms | 1864 KiB |
| 70.txt | AC | 0 ms | 1864 KiB |
| 71.txt | AC | 1 ms | 1956 KiB |
| 72.txt | AC | 6 ms | 2688 KiB |
| 73.txt | AC | 1 ms | 2156 KiB |
| 74.txt | AC | 5 ms | 2516 KiB |
| 75.txt | AC | 1 ms | 2404 KiB |
| 76.txt | AC | 4 ms | 3700 KiB |
| 77.txt | AC | 1 ms | 2380 KiB |
| 78.txt | AC | 11 ms | 3864 KiB |
| 79.txt | AC | 1 ms | 2172 KiB |
| 80.txt | AC | 3 ms | 3660 KiB |
| 81.txt | AC | 4 ms | 4056 KiB |
| 82.txt | AC | 4 ms | 3988 KiB |
| 83.txt | AC | 1 ms | 2036 KiB |
| 84.txt | AC | 3 ms | 3632 KiB |
| 85.txt | AC | 1 ms | 1892 KiB |
| 86.txt | AC | 0 ms | 1880 KiB |
| 87.txt | AC | 0 ms | 1912 KiB |
| 88.txt | AC | 2 ms | 2928 KiB |
| 89.txt | AC | 3 ms | 3352 KiB |
| 90.txt | AC | 3 ms | 3016 KiB |
| 91.txt | AC | 4 ms | 4072 KiB |
| after_contest_01 | AC | 0 ms | 1896 KiB |
| s1.txt | AC | 1 ms | 1884 KiB |
| s2.txt | AC | 0 ms | 1952 KiB |
| s3.txt | AC | 0 ms | 1864 KiB |