首页 > 代码库 > 洛谷P1071 潜伏者 字符串

洛谷P1071 潜伏者 字符串

洛谷P1071 潜伏者
字符串

题意 给出一段密文,在给出一段明文,再给出一段密文,要求破译这段密文,

如果错误的话就输出 Failed

错误有一下几种 密文中A--Z 没有全部出现

明文中A--Z 没有全部出现

不同的密文对应不同的明文 或者也可以这与这样说,不同的明文对应不同的密文

 

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <cmath>
 4 #include <cstdlib>
 5 #include <string>
 6 #include <algorithm>
 7 #include <iomanip>
 8 #include <iostream> 
 9 using namespace std ; 
10 
11 int n,l ; 
12 char a[111],b[111],c[111] ; 
13 int f[211],ff[211] ; 
14 
15 inline void die() 
16 {
17     printf("Failed\n") ; 
18     exit(0) ; 
19 }
20 
21 int main() 
22 {
23     scanf("%s",a+1) ;
24     scanf("%s",b+1) ; 
25     scanf("%s",c+1) ; 
26     l = strlen( a+1 ) ; 
27     for(int i=1;i<=l;i++ ) 
28     {
29         if( !f[a[i]]||f[a[i]]==b[i] ) 
30             f[a[i]] = b[ i ] ;  
31         else 
32             die() ; 
33         if( !ff[b[i]]||ff[b[i]]==a[i] ) 
34             ff[b[i]] = a[ i ] ;  
35         else 
36             die() ; 
37     }
38     for(char i=A;i<=Z;i++ ) 
39         if(!f[ i ]) die() ; 
40     for(char i=A;i<=Z;i++ ) 
41         if(!ff[ i ]) die() ;
42     l = strlen(c+1) ; 
43     for(int i=1;i<=l;i++ ) 
44         printf("%c", char( f[c[i]] ) )  ;
45     
46     return 0 ; 
47 }

 

洛谷P1071 潜伏者 字符串