codevs 1171 潜伏者

要是NOIP自己这样水就完了。。。

仔细啊!!!!

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 200500
using namespace std;
int map[30],len1,len2,len3,maps[30];
char s1[maxn],s2[maxn],s3[maxn];
bool vis[30];
int main()
{
    for (int i=1;i<=26;i++) {map[i]=-1;maps[i]=-1;}
    scanf("%s",s1);len1=strlen(s1);
    scanf("%s",s2);len2=strlen(s2);
    scanf("%s",s3);len3=strlen(s3);
    for (int i=0;i<=len1-1;i++)
    {
        int a=s1[i]-'A'+1,b=s2[i]-'A'+1;
        if (((map[a]!=b) && (map[a]!=-1)) || ((maps[b]!=a) && (maps[b]!=-1))) {printf("Failed
");return 0;}
        map[a]=b;maps[b]=a;vis[a]=true;
    }
    for (int i=1;i<=26;i++)
    {
        if ((map[i]==-1) || (!vis[i]))
            {printf("Failed
");return 0;}
    }
    for (int i=0;i<=len3-1;i++)
        printf("%c",64+map[s3[i]-'A'+1]);
    return 0;
}
原文地址:https://www.cnblogs.com/ziliuziliu/p/5754448.html