hdu oj 4300 Clairewd’s message AC code
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include
using namespace std;
int main(void)
{
int T;
cin >> T;
while (T--) {
string S, msg;
while (cin >> S >> msg) {
//assume division point.
int div = (msg.length())/ 2;
//cout << div << endl;
//partial decryption.
string pmsg(msg.begin(), msg.begin()+div);
for (int i = 0; i < pmsg.length(); ++i) {
pmsg[i] = 'a'+S.find(pmsg[i]);
}
//cout << pmsg << endl;
//pinpoint the division point.
int pos;
for (pos = div; pos < msg.length(); ++pos) {
if (msg.compare(pos, msg.length() - pos, pmsg.c_str(),msg.length() - pos) == 0)
break;
}
cout << msg.substr(0, pos);
for (int i = 0; i < pos; ++i) {
cout << (char)('a' + S.find(msg[i]));
}
cout << endl;
}
}
//system("pause");
return 0;
}