代码
#include <cstdio>
#include <map>
#include <string>
#include <iostream>
using namespace std;
#define M 10000
int ssize;
string origin,sec,trans;
map<char,char> dict;
int main() {
cin>>sec>>origin>>trans;
ssize = sec.size();
if(sec.size()<26) {
printf("Failed\n");
return 0;
}
if(sec.size()==26) {
for(int i = 0; i < ssize; i++) {
for(int j = 0; j < ssize&&i!=j; j++) {
if(sec[i]==sec[j]||origin[i]==origin[j]) {
printf("Failed\n");
return 0;
}
}
}
}
dict[sec[0]] = origin[0];
for(int i = 1; i < ssize; i++) {
if(dict[sec[i]]!=NULL && dict[sec[i]]!=origin[i]) {
printf("Failed\n");
return 0;
}
dict[sec[i]] = origin[i];
}
for(int i = 0; i < trans.size(); i++) {
cout<<dict[trans[i]];
}
cout<<endl;
return 0;
}