90pts,不知道那个情况没想到 题目链接
#include<bits/stdc++.h>
#define f(x) x-'A'
using namespace std;
char to[26];
bool used[26];
int AllRight(){
memset(used,0,sizeof(used));
for(int i=0;i<26;i++){
if(to[i]==' ')return 0;
if(used[f(to[i])]==1)return -1;
used[f(to[i])]=1;
}return 1;
}bool toBack(string a,string b){
for(int i=0;i<26;i++)to[i]=' ';
int len=a.size();
for(int i=0;i<len;i++){
to[f(a[i])]=b[i];
if(AllRight()==-1)return 0;
}if(AllRight())return 1;
return 0;
}int main(){
// freopen("spy.in","r",stdin);
// freopen("spy.out","w",stdout);
string s,s2;
string n;
cin>>s>>s2>>n;
bool flag=toBack(s,s2);
if(!flag){
cout<<"Failed";
return 0;
}int len=n.size();
// for(int i=0;i<26;i++)cout<<to[i];cout<<'\n';
for(int i=0;i<len;i++){
if(to[f(n[i])]==' ')return 0;
n[i]=to[f(n[i])];
}cout<<n;
return 0;
}