結果
問題 | No.894 二種類のバス |
ユーザー |
|
提出日時 | 2019-09-27 21:50:08 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 1 ms / 1,000 ms |
コード長 | 1,678 bytes |
コンパイル時間 | 12,298 ms |
コンパイル使用メモリ | 388,892 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-24 22:51:41 |
合計ジャッジ時間 | 13,254 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
#[macro_export]macro_rules! input {(source = $s:expr, $($r:tt)*) => {let mut iter = $s.split_whitespace();input_rec!{ iter, $($r)* }};($($r:tt)*) => {let s = {use std::io::Read;let mut s = String::new();std::io::stdin().read_to_string(&mut s).unwrap();s};let mut iter = s.split_whitespace();input_rec!{ iter, $($r)* }};}#[macro_export]macro_rules! input_rec {($iter:expr) => {};($iter:expr, ) => {};($iter:expr, $var:ident : $t:tt, $($r:tt)*) => {let $var = read_value!($iter, $t);input_rec! { $iter, $($r)* }};}#[macro_export]macro_rules! read_value {// tuple($iter:expr, ( $($t:tt), * )) => {( $(read_value!($iter, $t)), * )};// array($iter:expr, [ $t:tt; given ]) => {(0..(read_value!($iter, usize))).map(|_| read_value!($iter, $t)).collect::<Vec<_>>()};// array($iter:expr, [ $t:tt; $len:expr ]) => {(0..$len).map(|_| read_value!($iter, $t)).collect::<Vec<_>>()};// string($iter:expr, chars) => {read_value!($iter, String).chars(),collect::<Vec<char>>()};// any other($iter:expr, $t:ty) => {$iter.next().unwrap().parse::<$t>().expect("Parse error")};}fn gcd(a: u64, b: u64) -> u64 {if b == 0 { a }else { gcd(b, a % b) }}fn main() {input! {t: u64,a: u64,b: u64,}let t = t - 1;let g = gcd(a, b);let at = t / a;let ag = b / g;let bt = t / b;println!("{}", at - (at / ag) + bt + 1);}