总时间限制:

1000ms

内存限制:

65536kB

描述

R国和S国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动。

历经艰险后,潜伏于S国的R国间谍小C终于摸清了S国军用密码的编码规则:

1、    S国军方内部欲发送的原信息经过加密后在网络上发送,原信息的内容与加密后所的内容均由大写字母‘A’—‘Z’构成(无空格等其他字母)。

2、    S国对于每个字母规定了对应的“密字”。加密的过程就是将原信息中的所有字母替换为其对应的“密字”。

3、    每个字母只对应一个唯一的“密字”,不同的字母对应不同的“密字”。“密字”可以和原字母相同。

例如,若规定‘A’的密字为‘A’,‘B’的密字为‘C’(其他字母及密字略),则原信息“ABA”被加密为“ACA”。

现在,小C通过内线掌握了S国网络上发送的一条加密信息及其对应的原信息。小C希望能通过这条信息,破译S国的军用密码。小C的破译过程是这样的:扫描原信息,对于原信息中的字母x(代表任一大写字母),找到其在加密信息中的对应大写字母y,并认为在密码里y是x的密字。如此进行下去直到停止于如下的某个状态:

1、    所有信息扫描完毕,‘A’—‘Z’所有26个字母在原信息中均出现过并获得了相应的“密字”。

2、    所有信息扫描完毕,但发现存在某个(或某些)字母在原信息中没有出现。

3、    扫描中发现掌握的信息里有明显的自相矛盾或错误(违反S过密码的编码规则)。例如某条信息“XYZ”被翻译为“ABA”就违反了“不同字母对应不同密字”的规则。

在小C忙得头昏脑胀之际,R国司令部又发来电报,要求他翻译另外一条从S国刚刚截取到的加密信息。现在请你帮助小C:通过内线掌握的信息,尝试破译密码。然后利用破译的密码,翻译电报中的加密信息。

输入

共3行,每行为一个长度在1到100之间的字符串。
第1行为小C掌握的一条加密信息。
第2行为第1行的加密信息所对应的原信息。
第3行为R国司令部要求小C翻译的加密信息。
输入数据保证所有字符串仅由大写字母‘A’—‘Z’构成,且第1行长度与第2行相等。

输出

共1行。
若破译密码停止时出现2,3两种情况,请你输出“Failed”(不含引号,注意首字母大写,其它小写)。
否则请输出利用密码翻译电报中加密信息后得到的原信息。

样例输入

样例 #1:
AA
AB
EOWIE样例 #2:
QWERTYUIOPLKJHGFDSAZXCVBN
ABCDEFGHIJKLMNOPQRSTUVWXY
DSLIEWO样例 #3:
MSRTZCJKPFLQYVAWBINXUEDGHOOILSMIJFRCOPPQCEUNYDUMPP
YIZSDWAHLNOVFUCERKJXQMGTBPPKOIYKANZWPLLVWMQJFGQYLL
FLSO

样例输出

样例 #1:
Failed样例#2:
Failed样例#3:
NOIP

提示

输入输出样例1说明:原信息中的字母‘A’和‘B’对应相同的密字,输出“Failed”。

输入输出样例2说明:字母‘Z’在原信息中没有出现,输出“Failed”。

来源

NOIP2009复赛 提高组 第一题

代码

#include<iostream>
#include<cstring>
#include<iomanip>
#include<stdio.h>
#include<cstdio>
#include<cmath>
#include<string>
using namespace std;
char m[110],y[110],f[110],d[200],t[200];//密文,原文,译文,对应关系
int cnt=0;
int main()
{
cin>>m>>y>>f;
int lenm=strlen(m);
for(int i=0;i<lenm;i++)
{
if(d[m[i]]==0)
{
d[m[i]]=y[i];
cnt++;
}
else if(d[m[i]]!=y[i])
{
cout<<"Failed";
return 0;
}
if(t[y[i]]==0)
{
t[y[i]]=m[i];
}
else if(t[y[i]]!=m[i])
{
cout<<"Failed";
return 0;
}
}
if(cnt==26)
{
int lenf=strlen(f);
for(int j=0;j<lenf;j++)
{
cout<<d[f[j]];
}
}
else
{
cout<<"Failed";
return 0;
}
return 0;
}

1.7-11:潜伏者相关推荐

  1. 信息学奥赛一本通 1855:【09NOIP提高组】潜伏者 | OpenJudge NOI 1.7 11:潜伏者 | 洛谷 P1071 [NOIP2009 提高组] 潜伏者

    [题目链接] ybt 1855:[09NOIP提高组]潜伏者 OpenJudge NOI 1.7 11:潜伏者 洛谷 P1071 [NOIP2009 提高组] 潜伏者 [题目考点] 1. 字符串 2. ...

  2. 1.7编程基础字符串11潜伏者

    11.潜伏者 描述 R国和S国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历经艰险后,潜伏于S国的R国间谍小C终于摸清了S国军用密码的编码规则: 1. S国军方内部欲发送的原信息经过加密后 ...

  3. OPENJUDGE 1.7 11:潜伏者

    11:潜伏者 查看 描述 R国和S国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动. 历经艰险后,潜伏于S国的R国间谍小C终于摸清了S国军用密码的编码规则: 1.    S国军方内部欲发送的原 ...

  4. noi字符串11:潜伏者题解

    11:潜伏者 查看 提交 统计 提问 总时间限制:  1000ms  内存限制:  65536kB 描述 R国和S国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动. 历经艰险后,潜伏于S国的R ...

  5. openjudge 1.7.11 潜伏者

    OpenJudge - 11:潜伏者 解题思路: 1.由题意得:一共三行字符串a,b,c,分别是密文,原文和待翻译的密文 2.密码对应规则有两条,每个字母对应的加密字母只能有一个,并且26个字母都得出 ...

  6. NOI题库答案 (1.7 字符串基础)(1-20)

    01:统计数字字符个数 描述 输入一行字符,统计出其中数字字符的个数. 输入 一行字符串,总长度不超过255. 输出 输出为1行,输出字符串里面数字字符的个数. 样例输入 Peking Univers ...

  7. 【OpenJudge NOI】题解目录

    [OpenJudge NOI]题解目录 OJ链接:OpenJudge NOI 以下为本人做的OJ题解 针对每一道题我都会给出题目考点.解题思路.题解代码.必要时也会给出不同的解题方法. 如有不足之处, ...

  8. 洛谷P1071 潜伏者 字符串

    洛谷P1071 潜伏者 字符串 题意 给出一段密文,在给出一段明文,再给出一段密文,要求破译这段密文, 如果错误的话就输出 Failed 错误有一下几种 密文中A--Z 没有全部出现 明文中A--Z ...

  9. Redis 笔记(11)— 文本协议 RESP(单行、多行字符串、整数、错误、数组、空值、空串格式、telnet 登录 redis)

    RESP 是 Redis 序列化协议Redis Serialization Protocol 的简写.它是一种直观的文本协议,优势在于实现异常简单,解析性能极好. ​ Redis 协议将传输的结构数据 ...

  10. Linux shell 学习笔记(11)— 理解输入和输出(标准输入、输出、错误以及临时重定向和永久重定向)

    1. 理解输入和输出 1.1 标准文件描述符 Linux 系统将每个对象当作文件处理.这包括输入和输出进程.Linux 用文件描述符(file descriptor)来标识每个文件对象.文件描述符是一 ...

最新文章

  1. python读取html内容 dom获取_python学习笔记十三 JS,Dom(进阶篇)
  2. parallelstream启动的线程数_谈谈并行流parallelStream
  3. java课程 数独 文库_数独java
  4. 程序的加载和执行(五)——《x86汇编语言:从实模式到保护模式》读书笔记25
  5. boost::type_erasure::incrementable相关的测试程序
  6. apex图表使用饼图居中_饼图若只有一个值的时候,normal.label.position='center'时,label居中指的是DOM居中而不是图表居中...
  7. 网络安全之***手法计中计
  8. mysql单列索引和多列索引_MySQL索引使用说明(单列索引和多列索引)
  9. python把经纬度生成shp,利用Python实现Shp格式向GeoJSON的转换方法
  10. Caused by: java.lang.ClassNotFoundException: org.jaxen.JaxenException
  11. ButterWorthFIlter(巴特沃斯滤波器)
  12. 解决应用程序无法正常启动0xc0150002等问题
  13. Java泛型编程思想
  14. wincc提示项目管理器服务器不可用,Wincc新建文件时提示项目管理器 服务器不可用...
  15. Qt之如何识别小键盘(数字键盘)
  16. 香港流行乐黄金二十年——经典歌手(音乐人)全面回顾(四)
  17. php怎么统计运营天数,zblog教程:如何给网站内容添加运行天数统计
  18. 图像增强(空间域)——灰度变换
  19. 淘宝评论接口调用展示
  20. 前端学习日记2-html表单元素

热门文章

  1. 看 Sugar 讲矩阵键盘的使用
  2. MySQL修改数据库编码
  3. 爬虫 :urllib库的用法,关于 request,parse模块总结
  4. 【android】项目案例(三)之微信朋友圈上传,下载图片
  5. 广州.NET微软技术俱乐部微信群有用信息集锦(10) - 大量json数据压缩方案
  6. c++内存释放的几种方法
  7. 2021年中国中药饮片产业销售规模及重点企业对比分析[图]
  8. Vmware虚拟机的介绍
  9. Android 为应用桌面 Logo 添加数字提醒
  10. [英语语法]句法之there be结构与强调句