結果
問題 | No.423 ハムスター語初級(数詞) |
ユーザー |
![]() |
提出日時 | 2016-09-22 22:33:58 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,034 bytes |
コンパイル時間 | 1,273 ms |
コンパイル使用メモリ | 161,156 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-17 13:46:50 |
合計ジャッジ時間 | 1,771 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 9 |
ソースコード
#include <bits/stdc++.h>#define rep(i,n) for(int i=0;i<n;i++)//#define int long longusing namespace std;typedef long long ll;string n;// 文字列を置換するstd::string Replace( std::string String1, std::string String2, std::string String3 ){std::string::size_type Pos( String1.find( String2 ) );while( Pos != std::string::npos ){String1.replace( Pos, String2.length(), String3 );Pos = String1.find( String2, Pos + String3.length() );}return String1;}int strbin2i (const std::string &s) {int out = 0;for (int i = 0, size = s.size() ; i < size ; ++i ) {out *= 2;out += ((int)s[i] == 49) ? 1 : 0;}return out;}signed main(){cin >> n;n = Replace(n, "hamu", "1");n = Replace(n, "ham", "0");int ans = strbin2i(n);ans *= 2;string a;if (ans == 0) {cout << "ham" << endl;return 0;}while (ans != 0) {if (ans % 2 == 1) {a = "hamu" + a;} else {a = "ham" + a;}ans /= 2;}cout << a << endl;}