結果
| 問題 | 
                            No.1042 愚直大学
                             | 
                    
| コンテスト | |
| ユーザー | 
                             uw_yu1rabbit
                         | 
                    
| 提出日時 | 2021-03-14 13:17:35 | 
| 言語 | Rust  (1.83.0 + proconio)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 2 ms / 2,000 ms | 
| コード長 | 817 bytes | 
| コンパイル時間 | 12,540 ms | 
| コンパイル使用メモリ | 400,940 KB | 
| 実行使用メモリ | 6,820 KB | 
| 最終ジャッジ日時 | 2024-11-06 02:56:15 | 
| 合計ジャッジ時間 | 13,642 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge5 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 23 | 
ソースコード
#[allow(dead_code)]
#[allow(unused_imports)]
fn read<T: std::str::FromStr>() -> T {
    use std::io::*;
    let stdin = stdin();
    let stdin = stdin.lock();
    let token: String = stdin
        .bytes()
        .map(|c| c.expect("failed to read char") as char)
        .skip_while(|c| c.is_whitespace())
        .take_while(|c| !c.is_whitespace())
        .collect();
    token.parse().ok().expect("failed to parse token")
}
fn binary_search(p:f64,q:f64) -> f64 {
    let (mut lb , mut ub) = (0.0,1e15);
    for _ in 0..100 {
        let mid:f64 = (lb + ub) / 2.0;
        if mid <= q * mid.log2() + p / mid {
            lb = mid;
        }else{
            ub = mid;
        }
    }
    lb
}
fn main(){
    let p:usize = read();
    let q:usize = read();
    println!("{}",binary_search(p as f64,q as f64));
}
            
            
            
        
            
uw_yu1rabbit