結果
問題 | No.2385 Parse Integer with Radix |
ユーザー | 👑 Mizar |
提出日時 | 2023-06-22 10:58:24 |
言語 | Rust (1.77.0 + proconio) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 676 bytes |
コンパイル時間 | 12,526 ms |
コンパイル使用メモリ | 380,108 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-02 19:20:29 |
合計ジャッジ時間 | 13,160 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 1 ms
5,248 KB |
testcase_01 | AC | 1 ms
5,376 KB |
testcase_02 | AC | 2 ms
5,376 KB |
testcase_03 | AC | 1 ms
5,376 KB |
testcase_04 | AC | 1 ms
5,376 KB |
testcase_05 | AC | 1 ms
5,376 KB |
testcase_06 | AC | 1 ms
5,376 KB |
testcase_07 | AC | 1 ms
5,376 KB |
testcase_08 | AC | 1 ms
5,376 KB |
testcase_09 | AC | 1 ms
5,376 KB |
testcase_10 | AC | 1 ms
5,376 KB |
testcase_11 | AC | 1 ms
5,376 KB |
ソースコード
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().rev().enumerate().map(|(i, &c)| match c { b'0'..=b'9' => u64::from(c - b'0') * b.pow(i as u32), b'A'..=b'Z' => u64::from(c - b'A' + 10) * b.pow(i as u32), b'a'..=b'z' => u64::from(c - b'a' + 10) * b.pow(i as u32), _ => panic!(), }).sum::<u64>()); } }