結果
問題 |
No.604 誕生日のお小遣い
|
ユーザー |
|
提出日時 | 2018-10-08 16:46:54 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 1 ms / 1,000 ms |
コード長 | 780 bytes |
コンパイル時間 | 11,584 ms |
コンパイル使用メモリ | 381,308 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-21 19:25:53 |
合計ジャッジ時間 | 12,617 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 |
ソースコード
#![allow(non_snake_case)] use std::io::{ self, prelude::* }; macro_rules! pick { ($tokens:expr) => { $tokens.next().unwrap().parse().expect("parse error") } } fn f(A: u128, B: u128, x: u128) -> u128 { let k = x/A; B*k + x-k } fn main() { let mut s = String::new(); io::stdin().read_to_string(&mut s).expect("i/o error"); let mut tokens = s.split_whitespace(); let A: u128 = pick!(tokens); let B: u128 = pick!(tokens); let C: u128 = pick!(tokens); let mut lo = 0; let mut hi = 1_000_000_000_000_000_000; while hi - lo > 1 { let mid = (lo+hi) / 2; if f(A,B,mid) < C { lo = mid; } else { hi = mid; } } let ans = hi; println!("{}", ans); }