0088-The Code A Doctor Loved

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0088&lang=jp
VBStringsの作成のほうが大変だった。

考え方
書かれている通りに置換する。

実装(C++/インクルード省略/VBStrings省略)

const int rmax=32;
string rdata[rmax][2]={{" ","101"},{"'","000000"},{",","000011"},{"-","10010001"},{".","010001"},{"?","000001"},{"A","100101"},{"B","10011010"},{"C","0101"},{"D","0001"},{"E","110"},{"F","01001"},{"G","10011011"},{"H","010000"},{"I","0111"},{"J","10011000"},{"K","0110"},{"L","00100"},{"M","10011001"},{"N","10011110"},{"O","00101"},{"P","111"},{"Q","10011111"},{"R","1000"},{"S","00110"},{"T","00111"},{"U","10011100"},{"V","10011101"},{"W","000010"},{"X","10010010"},{"Y","10010011"},{"Z","10010000"}};
string rdata2[rmax][2]={{"00000","A"},{"00001","B"},{"00010","C"},{"00011","D"},{"00100","E"},{"00101","F"},{"00110","G"},{"00111","H"},{"01000","I"},{"01001","J"},{"01010","K"},{"01011","L"},{"01100","M"},{"01101","N"},{"01110","O"},{"01111","P"},{"10000","Q"},{"10001","R"},{"10010","S"},{"10011","T"},{"10100","U"},{"10101","V"},{"10110","W"},{"10111","X"},{"11000","Y"},{"11001","Z"},{"11010"," "},{"11011","."},{"11100",","},{"11101","-"},{"11110","'"},{"11111","?"}};
int main(){
	string in;
	string res;
	while(cin.eof()==false){
		getline(cin,in);
		if(cin.eof()==true) return 0;
		for(int i=0;i<rmax;i++){
			in=Replace(in,rdata[i][0],rdata[i][1]);
		}
		in+=String(5-Len(in)%5==5?0:5-Len(in)%5,"0");
		res="";
		for(int i=1;i<=Len(in);i+=5){
			for(int j=0;j<rmax;j++){
				if(rdata2[j][0]==Mid(in,i,5)){
					res+=rdata2[j][1];
				}
			}
		}
		cout << res << endl;
	}
	return 0;
}