要是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\n");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\n");return 0;} } for (int i=0;i<=len3-1;i++) printf("%c",64+map[s3[i]-‘A‘+1]); return 0; }
时间: 2024-10-10 04:52:19