結果

問題 No.894 二種類のバス
ユーザー wesrivery
提出日時 2019-09-28 17:49:23
言語 Rust
(1.83.0 + proconio)
結果
AC  
実行時間 1 ms / 1,000 ms
コード長 926 bytes
コンパイル時間 13,197 ms
コンパイル使用メモリ 382,120 KB
実行使用メモリ 6,824 KB
最終ジャッジ日時 2024-10-02 13:35:51
合計ジャッジ時間 13,250 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 17
権限があれば一括ダウンロードができます

ソースコード

diff #

#[allow(unused_macros)]
macro_rules! input {
    ( $($t:ty),* ) => {{
        let mut s = String::new();
        std::io::stdin().read_line(&mut s);
        let mut splits = s.trim().split_whitespace();
        ($( { splits.next().unwrap().parse::<$t>().unwrap() },)*)
    }}
}


#[allow(dead_code)]
pub fn gcd(n: u64, m: u64) -> u64 {
    match (n, m) {
        (0, 0) => return 0,
        (0, _) => return 0,
        (_, 0) => return 0,
        (n, m) => {
            let r = n % m;
            if r == 0 {
                m
            } else {
                gcd(m, r)
            }
        }
    }
}

#[allow(unused_must_use)]
#[allow(unused_variables)]
fn solve() {
    let (t, a, b) = input!(u64, u64, u64);

    let t = t - 1;
    let a_count = t / a + 1;
    let b_count = t / b + 1;
    let same_time = t / (a * b / gcd(a, b)) + 1;

    println!("{}", a_count + b_count - same_time);
}

fn main() {
    solve();
}
0