結果
| 問題 |
No.2385 Parse Integer with Radix
|
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2023-06-22 10:57:15 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
AC
|
| 実行時間 | 1 ms / 2,000 ms |
| コード長 | 604 bytes |
| コンパイル時間 | 12,658 ms |
| コンパイル使用メモリ | 378,460 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-07-02 19:19:54 |
| 合計ジャッジ時間 | 13,518 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 11 |
ソースコード
fn main() {
let mut l = std::io::BufRead::lines(std::io::stdin().lock());
let q = l.next().unwrap().unwrap().parse::<usize>().unwrap();
for _ in 0..q {
let s = l.next().unwrap().unwrap();
let (t, b) = match &s[..s.len().min(2)] {
"0B" | "0b" => (&s[2..], 2u64),
"0O" | "0o" => (&s[2..], 8u64),
"0X" | "0x" => (&s[2..], 16u64),
_ => (&s[..], 10u64),
};
println!("{}", t.as_bytes().iter().fold(0u64, |p, &c| p * b + match c {
b'0'..=b'9' => u64::from(c - b'0'),
b'A'..=b'Z' => u64::from(c - b'A' + 10),
b'a'..=b'z' => u64::from(c - b'a' + 10),
_ => panic!(),
}));
}
}