結果
| 問題 |
No.3301 Make Right Triangle
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-10-05 15:14:33 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
AC
|
| 実行時間 | 157 ms / 2,000 ms |
| コード長 | 611 bytes |
| コンパイル時間 | 11,249 ms |
| コンパイル使用メモリ | 400,736 KB |
| 実行使用メモリ | 7,720 KB |
| 最終ジャッジ日時 | 2025-10-05 15:15:43 |
| 合計ジャッジ時間 | 17,196 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 9 |
ソースコード
use proconio::input;
fn solve() -> Vec<(u64, u64, u64)> {
input! {
t: usize,
l: [u64; t],
}
let mut ans = Vec::with_capacity(t);
for &li in l.iter() {
let tz = li.trailing_zeros();
let lio = li >> tz;
let abc = if lio == 1 {
(3 << (tz - 2), 4 << (tz - 2), 5 << (tz - 2))
} else {
let x = lio.pow(2) >> 1;
(li, x << tz, (x + 1) << tz)
};
ans.push(abc);
assert!((abc.0 as u128).pow(2) + (abc.1 as u128).pow(2) == (abc.2 as u128).pow(2));
}
ans
}
fn main() {
let ans = solve();
for (x, y, z) in ans {
println!("{} {} {}", x, y, z);
}
}