|
+
|
... |
#include <iostream>
#include <string>
#include <map>
using namespace std;
typedef map<string, string> M;
typedef pair<string, string> IP;
int main() {
M bm, am;
bm.insert(IP(" ", "101"));
bm.insert(IP("\'", "000000"));
bm.insert(IP(",", "000011"));
bm.insert(IP("-", "10010001"));
bm.insert(IP(".", "010001"));
bm.insert(IP("?", "000001"));
bm.insert(IP("A", "100101"));
bm.insert(IP("B", "10011010"));
bm.insert(IP("C", "0101"));
bm.insert(IP("D", "0001"));
bm.insert(IP("E", "110"));
bm.insert(IP("F", "01001"));
bm.insert(IP("G", "10011011"));
bm.insert(IP("H", "010000"));
bm.insert(IP("I", "0111"));
bm.insert(IP("J", "10011000"));
bm.insert(IP("K", "0110"));
bm.insert(IP("L", "00100"));
bm.insert(IP("M", "10011001"));
bm.insert(IP("N", "10011110"));
bm.insert(IP("O", "00101"));
bm.insert(IP("P", "111"));
bm.insert(IP("Q", "10011111"));
bm.insert(IP("R", "1000"));
bm.insert(IP("S", "00110"));
bm.insert(IP("T", "00111"));
bm.insert(IP("U", "10011100"));
bm.insert(IP("V", "10011101"));
bm.insert(IP("W", "000010"));
bm.insert(IP("X", "10010010"));
bm.insert(IP("Y", "10010011"));
bm.insert(IP("Z", "10010000"));
am.insert(IP("00000", "A"));
am.insert(IP("00001", "B"));
am.insert(IP("00010", "C"));
am.insert(IP("00011", "D"));
am.insert(IP("00100", "E"));
am.insert(IP("00101", "F"));
am.insert(IP("00110", "G"));
am.insert(IP("00111", "H"));
am.insert(IP("01000", "I"));
am.insert(IP("01001", "J"));
am.insert(IP("01010", "K"));
am.insert(IP("01011", "L"));
am.insert(IP("01100", "M"));
am.insert(IP("01101", "N"));
am.insert(IP("01110", "O"));
am.insert(IP("01111", "P"));
am.insert(IP("10000", "Q"));
am.insert(IP("10001", "R"));
am.insert(IP("10010", "S"));
am.insert(IP("10011", "T"));
am.insert(IP("10100", "U"));
am.insert(IP("10101", "V"));
am.insert(IP("10110", "W"));
am.insert(IP("10111", "X"));
am.insert(IP("11000", "Y"));
am.insert(IP("11001", "Z"));
am.insert(IP("11010", " "));
am.insert(IP("11011", "."));
am.insert(IP("11100", ","));
am.insert(IP("11101", "-"));
am.insert(IP("11110", "\'"));
am.insert(IP("11111", "?"));
string s;
while (getline(cin, s)) {
string ans = "", w = "";
for (int i = 0; i < s.size(); i++) {
w += bm[s.substr(i, 1)];
while (w.size() >= 5) {
ans += am[w.substr(0, 5)];
w.erase(0, 5);
}
}
if (w.size() != 0) {
while (w.size() != 5) w += "0";
ans += am[w];
}
cout << ans << endl;
}
return 0;
}
|