UVa740 - Baudot Data Communication Code
来源:互联网 发布:遗传算法与神经网络 编辑:程序博客网 时间:2024/06/11 18:55
#include <iostream>#include <fstream>#include <cstdio>#include <string>using namespace std;const int N = 10000;int conv(string &s);int main(){ int state; string s[2]; string message; string tmp;#ifndef ONLINE_JUDGE ifstream cin("d:\\OJ\\uva_in.txt"); //freopen("d:\\OJ\\uva_in.txt", "r", stdin);#endif // ONLINE_JUDGE getline(cin, s[0]); getline(cin, s[1]); while (getline(cin, message)) { string ans; state = 0; if (message.length() % 5) { cout << endl; continue; } for (int i = 0; i < message.length(); i += 5) { tmp = message.substr(i, 5); //cout << "tmp:" << tmp << endl; if ((state == 1 && tmp == "11011") || (state == 0 && tmp == "11111")) { state = 1 - state; continue; } if (tmp == "11011" || tmp == "11111") continue; int num = conv(tmp); ans += s[state][num]; } if (ans == "") cout << endl; else cout << ans << endl; } return 0;}int conv(string &s){ int ans = 0; for (int i = 0; i < s.length(); i++) { ans = ans * 2 + (s[i] - '0'); } return ans;}