记录编号 105358 评测结果 AAAAAAAAAA
题目名称 Encrypt 最终得分 100
用户昵称 GravatarBokjan 是否通过 通过
代码语言 C++ 运行时间 0.003 s
提交时间 2014-06-11 15:04:05 内存使用 0.31 MiB
显示代码纯文本
#include<fstream>
#include<cstring>
using namespace std;
char ins[7],t[26];
void A(void){
	for(int i=0,j=strlen(t)-1;i<j;i++,j--){
		char tmp=t[i];
		t[i]=t[j];
		t[j]=tmp;
	}
}
void C(void){
	int len=strlen(t);
	char tmp=t[len-1];
	while(--len)
		t[len]=t[len-1];
	t[0]=tmp;
}
void E(void){
	int len=strlen(t),mid=len/2,dist=mid;
	if(len%2)
		dist++;
	while(mid--){
		char tmp=t[mid];
		t[mid]=t[mid+dist];
		t[mid+dist]=tmp;
	}
}
void J(void){
	char tmp=t[0];
	int len=strlen(t);
	for(int i=1;i<len;i++)
		t[i-1]=t[i];
	t[len-1]=tmp;
}
void M(void){
	int len=strlen(t);
	for(int i=0;i<len;i++)
		if(t[i]>='0'&&t[i]<='9')
			if(t[i]=='0')
				t[i]='9';
			else
				t[i]--;
}
void P(void){
	int len=strlen(t);
	for(int i=0;i<len;i++)
		if(t[i]>='0'&&t[i]<='9')
			if(t[i]=='9')
				t[i]='0';
			else
				t[i]++;
}
int main(void){
	ifstream fin("encrypta.in");
	ofstream fout("encrypta.out");
	fin>>ins>>t;
	int ilen=strlen(ins);
	while(ilen--){
		switch(ins[ilen]){
			case 'A':
				A();
				break;
			case 'C':
				J();
				break;
			case 'E':
				E();
				break;
			case 'J':
				C();
				break;
			case 'M':
				P();
				break;
			case 'P':
				M();
				break;
		}
	}
	fout<<t<<endl;
	fin.close();
	fout.close();
	return 0;
}