結果
| 問題 |
No.456 Millions of Submits!
|
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2023-08-09 01:38:44 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
AC
|
| 実行時間 | 4,169 ms / 4,500 ms |
| コード長 | 1,082 bytes |
| コンパイル時間 | 11,883 ms |
| コンパイル使用メモリ | 400,848 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-11-14 06:47:26 |
| 合計ジャッジ時間 | 24,387 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 13 |
ソースコード
use std::io;
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read input");
let q: i32 = input.trim().parse().expect("Invalid input");
for _ in 0..q {
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read input");
let mut numbers = input.split_whitespace().map(|s| s.parse::<f64>().expect("Invalid input"));
let a: f64 = numbers.next().unwrap();
let b: f64 = numbers.next().unwrap();
let t: f64 = numbers.next().unwrap();
if a == 0.0 {
println!("{}", f64::powf(2.718281828459045, f64::powf(t, 1.0 / b)));
continue;
}
let mut max = 10.0;
let mut min = 0.0;
let epsilon = 1e-9;
while max - min > epsilon {
let mid = (max + min) / 2.0;
if f64::powf(mid, a) * f64::ln(mid).powf(b) >= t {
max = mid;
} else {
min = mid;
}
}
println!("{}", (max + min) / 2.0);
}
}
titia