要是NOIP自己这样水就完了。。。
仔细啊!!!!
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 200500
using namespace std;
int map[],len1,len2,len3,maps[];
char s1[maxn],s2[maxn],s3[maxn];
bool vis[];
int main()
{
for (int i=;i<=;i++) {map[i]=-;maps[i]=-;}
scanf("%s",s1);len1=strlen(s1);
scanf("%s",s2);len2=strlen(s2);
scanf("%s",s3);len3=strlen(s3);
for (int i=;i<=len1-;i++)
{
int a=s1[i]-'A'+,b=s2[i]-'A'+;
if (((map[a]!=b) && (map[a]!=-)) || ((maps[b]!=a) && (maps[b]!=-))) {printf("Failed\n");return ;}
map[a]=b;maps[b]=a;vis[a]=true;
}
for (int i=;i<=;i++)
{
if ((map[i]==-) || (!vis[i]))
{printf("Failed\n");return ;}
}
for (int i=;i<=len3-;i++)
printf("%c",+map[s3[i]-'A'+]);
return ;
}