結果
問題 | No.2526 Kth Not-divisible Number |
ユーザー |
|
提出日時 | 2023-11-03 21:47:18 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 261 ms / 2,000 ms |
コード長 | 2,996 bytes |
コンパイル時間 | 13,354 ms |
コンパイル使用メモリ | 378,976 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-25 19:55:42 |
合計ジャッジ時間 | 16,355 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 11 |
コンパイルメッセージ
warning: unnecessary parentheses around `while` condition --> src/main.rs:42:11 | 42 | while (l + 1 < r) { | ^ ^ | = note: `#[warn(unused_parens)]` on by default help: remove these parentheses | 42 - while (l + 1 < r) { 42 + while l + 1 < r { |
ソースコード
#![allow(unused_imports)]#![allow(unused_macros)]#![allow(dead_code)]#![allow(non_snake_case)]pub use __cargo_equip::prelude::*;use kyopro_io::get;use std::io::{StdoutLock, Write};const JU_5: usize = 100_000;const JU_9: usize = JU_5 * 10_000;const JU_18: usize = JU_9 * JU_9;const INF: usize = JU_9 + 100_100;const INFL: usize = JU_18 * 2;const MULTIPLE_TEST_CASE: bool = true;fn gcd(a: usize, b: usize) -> usize {if a > b {return gcd(b, a);}if a == 0 {return b;}gcd(b % a, a)}fn lcm(a: usize, b: usize) -> usize {let g = gcd(a, b);(a / g) * (b / g) * g}fn _main(writer: &mut std::io::BufWriter<StdoutLock>) {let (a, b, k) = get!(usize, usize, usize);let L = lcm(a, b);let mut l = 0;let mut r = INFL*2;let _f = |m: usize| {let x = m / a + m / b - m / L;return (m - x) < k;};while (l + 1 < r) {let m = (l + r) / 2;if _f(m) {l = m;} else {r = m;}}writeln!(writer, "{}", r).unwrap();}// writeln!(writer, "{}", ans).unwrap();fn main() {let t = if MULTIPLE_TEST_CASE { get!(usize) } else { 1 };let stdout = std::io::stdout();let mut writer = std::io::BufWriter::new(stdout.lock());for _ in 0..t {_main(&mut writer);}}// The following code was expanded by `cargo-equip`./// # Bundled libraries////// - `kyopro-io 0.1.0 (path+████████████████████████████████████████████████)` published in **missing** licensed under `CC0-1.0` as `crate::__cargo_equip::crates::kyopro_io`#[cfg_attr(any(), rustfmt::skip)]#[allow(unused)]mod __cargo_equip {pub(crate) mod crates {pub mod kyopro_io {pub use crate::__cargo_equip::macros::kyopro_io::*; macro_rules!__cargo_equip_macro_def_kyopro_io_get{($t:ty)=>{{let mut line:String=String::new();std::io::stdin().read_line(&mut line).unwrap();line.trim().parse::<$t>().unwrap()}};($($t:ty),*)=>{{let mut line:String=String::new();std::io::stdin().read_line(&mut line).unwrap();let mut iter=line.split_whitespace();($(iter.next().unwrap().parse::<$t>().unwrap(),)*)}};($t:ty;$n:expr)=>{(0..$n).map(|_|get!($t)).collect::<Vec<_>>()};($($t:ty),*;$n:expr)=>{(0..$n).map(|_|get!($($t),*)).collect::<Vec<_>>()};($t:ty;;)=>{{let mut line:String=String::new();std::io::stdin().read_line(&mut line).unwrap();line.split_whitespace().map(|t|t.parse::<$t>().unwrap()).collect::<Vec<_>>()}};($t:ty;;$n:expr)=>{(0..$n).map(|_|get!($t;;)).collect::<Vec<_>>()};}macro_rules!get{($($tt:tt)*)=>(crate::__cargo_equip_macro_def_kyopro_io_get!{$($tt)*})}}}pub(crate) mod macros {pub mod kyopro_io {pub use crate::__cargo_equip_macro_def_kyopro_io_get as get;}}pub(crate) mod prelude {pub use crate::__cargo_equip::crates::*;}mod preludes {pub mod kyopro_io {}}}