比赛 20190908之惊鸿 评测结果 AAAAAAAAAA
题目名称 潜伏者 最终得分 100
用户昵称 李俊辉 运行时间 0.004 s
代码语言 C++ 内存使用 4.40 MiB
提交时间 2019-09-09 21:01:54
显示代码纯文本
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int N=100;
const int M=26;
char s1[N+5],s2[N+5],s3[N+5];
int len1,len2,len3;
int map[M+1];
int main()
{
    freopen("spy.in","r",stdin);
    freopen("spy.out","w",stdout);
    memset(map,-1,sizeof(map));
    scanf("%s",s1);
    scanf("%s",s2);
    scanf("%s",s3);
    len1=strlen(s1),len2=strlen(s2),len3=strlen(s3);
    for(int i=0;i<=len1-1;i++)
    {
        if(map[s1[i]-'A']!=-1&&map[s1[i]-'A']!=s2[i]-'A')//没有一个下标对应两个字母的情况 
        {
            printf("Failed");
            return 0;
        }
        map[s1[i]-'A']=s2[i]-'A';
    }
    for(int i=0;i<=24;i++)
    for(int j=i+1;j<=25;j++)
    if(map[i]==map[j])//没有两个字母对应一个下标的情况 
    {
        printf("Failed");
        return 0;
    }
    for(int i=0;i<=25;i++)//26个字母要集齐 
    if(map[i]==-1)
    {
        printf("Failed");
        return 0;
    }
    for(int i=0;i<=len3-1;i++)
    printf("%c",map[s3[i]-'A']+'A');
    return 0;
}