2995905_ac_0ms_156k.cpp

来自「北大大牛代码 1240道题的原代码 超级权威」· C++ 代码 · 共 104 行

CPP
104
字号
#include <iostream>
#include <string>

using namespace std;

void OLE()
{
	while(1)
	{
		puts("I LOVE U Shengqi");
	}
}

void solve(string &message,char op)
{
	int i;
	char tmp;
	string tt;

	switch(op)
	{
	case 'J':tmp = message.at(0);message = message.substr(1,message.length()-1);message += tmp;break;
	case 'C':message = message.at(message.length()-1)+message.substr(0,message.length()-1);break;
	case 'E':
		tt = message.substr((message.length()+1)/2,message.length()/2);
		if(message.length()%2==1)
		{
			tt += message.at(message.length()/2);
		}
		tt += message.substr(0,message.length()/2);
		message = tt;
		break;
	case 'A':
		tt = "";
		for(i = message.length()-1; i >= 0; i--)
		{
			tt += message.at(i);
		}
		message = tt;
		break;
	case 'P':
		tt = "";
		for(i = 0; i < message.length(); i++)
		{
			char t;

			t = message.at(i);
			if(t<='9'&&t>='0')
			{
				if(t=='9')
					t = '0';
				else
					t++;
			}
			tt += t;
		}
		message = tt;
		break;
	case 'M':
		tt = "";
		for(i = 0; i < message.length(); i++)
		{
			char t;

			t = message.at(i);
			if(t<='9'&&t>='0')
			{
				if(t=='0')
					t = '9';
				else
					t--;
			}
			tt += t;
		}
		message = tt;
		break;
	default:
		OLE();
	}
}

int main()
{
	int cas, i;
	string order, tmp, message;
	const string a = "JCEAPM", b = "CJEAMP";

	scanf("%d",&cas);
	while(cas--)
	{
		cin >> order >> message;
		tmp = "";
		for(i = order.length()-1; i >= 0; i--)
		{
			tmp += b.at(a.find(order.at(i)));
		}
		for(i = 0; i < tmp.length(); i++)
		{
			solve(message,tmp.at(i));
		}
		cout << message << endl;
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?