結果
問題 |
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); } }