結果
問題 | No.2385 Parse Integer with Radix |
ユーザー | shumibako |
提出日時 | 2023-07-29 18:53:59 |
言語 | C++14 (gcc 12.3.0 + boost 1.83.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,900 bytes |
コンパイル時間 | 3,872 ms |
コンパイル使用メモリ | 231,120 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-08 06:32:56 |
合計ジャッジ時間 | 4,461 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
5,248 KB |
testcase_01 | AC | 2 ms
5,248 KB |
testcase_02 | AC | 2 ms
5,248 KB |
testcase_03 | AC | 2 ms
5,248 KB |
testcase_04 | AC | 1 ms
5,248 KB |
testcase_05 | AC | 1 ms
5,248 KB |
testcase_06 | AC | 2 ms
5,248 KB |
testcase_07 | AC | 2 ms
5,248 KB |
testcase_08 | AC | 2 ms
5,248 KB |
testcase_09 | AC | 2 ms
5,248 KB |
testcase_10 | AC | 2 ms
5,248 KB |
testcase_11 | AC | 2 ms
5,248 KB |
ソースコード
#include <iostream> #include <bits/stdc++.h> #include <string> #include <algorithm> #include <cassert> #include <atcoder/all> #include <cctype> using namespace std; using namespace atcoder; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define rep_start(i,l,r) for(int i=(l);i<(r);i++) #define max(p,q)((p)>(q)?(p):(q)) #define min(p,q)((p)<(q)?(p):(q)) using ll = long long; using mod = modint998244353; using p = pair<int ,int>; //auto s0 = [](const vector<int> &alpha,const vector<int> &beta){return alpha[0] < beta[0];}; //auto dfs = [&](auto &dfs,int i)->void{dfs(dfs,i)}; int main(){ int q;cin >> q; while(q--){ string s;cin >> s; ll ans = 0; ll p = 1; if(s.size() <= 2){ cout << s << '\n'; }else if(s[0] == '0' && s[1] == 'b'){ s = s.substr(2,s.size() - 2); reverse(s.begin(),s.end()); for(char c:s){ ans += p*(c - '0'); p *= 2; } cout << ans << '\n'; }else if(s[0] == '0' && s[1] == 'o'){ s = s.substr(2,s.size() - 2); reverse(s.begin(),s.end()); for(char c:s){ ans += p*(c - '0'); p *= 8; } cout << ans << '\n'; }else if(s[0] == '0' && s[1] == 'x'){ s = s.substr(2,s.size() - 2); reverse(s.begin(),s.end()); for(char c:s){ ll i = 0; if(c == 'a')i = 10; else if(c == 'b')i = 11; else if(c == 'c')i = 12; else if(c == 'd')i = 13; else if(c == 'e')i = 14; else if(c == 'f')i = 15; else i = c - '0'; ans += p*i; p *= 16; } cout << ans << '\n'; }else{ cout << s << '\n'; } } }