| 比赛 | 
    防止颓废的小练习v0.3 | 
    评测结果 | 
    AAAAAAAAAA | 
    | 题目名称 | 
    潜伏者 | 
    最终得分 | 
    100 | 
    | 用户昵称 | 
    农场主 | 
    运行时间 | 
    0.034 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    0.26 MiB  | 
    | 提交时间 | 
    2016-10-19 12:10:05 | 
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath> 
using namespace std;
int t[27]={0},dt[27]={0};
char a[101],b[101],c[101];
void read(){
	scanf("%s",a);
	scanf("%s",b);
	scanf("%s",c);
}
void work(){
	if (strlen(a)!=strlen(b)){
		printf("Failed");
		return;
	}
	int n=strlen(a);
	for (int i=0;i<n;i++){
		int u=a[i]-'A'+1,v=b[i]-'A'+1; 
		if (t[u]!=v&&t[u]){
			printf("Failed");
			return;
		}
		if (dt[v]!=u&&dt[v]){
			printf("Failed");
			return;
		}
		t[u]=v;
		dt[v]=u;
	}
	for (int i=1;i<=26;i++){
		if (!t[i]||!dt[i]){
			printf("Failed");
			return;
		}
	}
	int m=strlen(c);
	for (int i=0;i<m;i++){
		c[i]=t[c[i]-'A'+1]+'A'-1;
		printf("%c",c[i]);
	}
}
int main(){
	freopen("spy.in","r",stdin);
	freopen("spy.out","w",stdout);
	read();
	work();
	return 0;
}
/*
MSRTZCJKPFLQYVAWBINXUEDGHOOILSMIJFRCOPPQCEUNYDUMPP
YIZSDWAHLNOVFUCERKJXQMGTBPPKOIYKANZWPLLVWMQJFGQYLL
FLSO 
*/