結果
問題 | No.423 ハムスター語初級(数詞) |
ユーザー |
![]() |
提出日時 | 2018-07-21 19:58:58 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 1,164 bytes |
コンパイル時間 | 1,961 ms |
コンパイル使用メモリ | 169,160 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-26 04:59:36 |
合計ジャッジ時間 | 2,461 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 9 |
ソースコード
#include <bits/stdc++.h>using namespace std;int func1(string str){int ans = 0, i;for(i = 0; i < str.size(); i++){if(str[i] == '1'){ans += pow(2, str.size() - 1 - i);}}return ans;}string func2(int num){string str, tmp;int i;while(1){tmp += to_string(num%2);num /= 2;//printf("num %d\n", num);if(num == 1){tmp += to_string(num%2);break;}}for(i = 0; i < tmp.size(); i++){if(tmp[tmp.size() - 1 - i] == '1'){str += "hamu";}else{str += "ham";}}return str;}int main(){string str, ans;int cnt, i, tmp;cin >> str;if(str == "ham"){cout << "ham" << endl;return 0;}else{for(i = 0; i < str.size(); i += cnt){if(strncmp(&str[i], "hamu", 4) == 0){ans += '1';cnt = 4;}else{ans += '0';cnt = 3;}}}tmp = func1(ans);ans = func2(tmp*2);cout << ans << endl;return 0;}