题目描述

RR 国和 SS 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动。历尽艰险后,潜伏于 SS 国的 RR 国间谍小 CC 终于摸清了 SS 国军用密码的编码规则:

1. SS 国军方内部欲发送的原信息经过加密后在网络上发送,原信息的内容与加密后所得的内容均由大写字母‘ AA’-‘ ZZ ’构成(无空格等其他字符)。

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

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

例如,若规定‘ AA ’的密字为‘ AA ’,‘ BB ’的密字为‘ CC ’(其他字母及密字略),则原信息“ ABAABA ”被加密为“ ACAACA”。

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

1. 所有信息扫描完毕,‘ AA ’-‘ ZZ ’ 所有 2626 个字母在原信息中均出现过并获得了相应的“密字”。

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

3. 扫描中发现掌握的信息里有明显的自相矛盾或错误(违反 SS 国密码的编码规则)。例

如某条信息“ XYZXYZ ”被翻译为“ ABAABA ”就违反了“不同字母对应不同密字”的规则。

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

输入输出格式

输入格式:

共 33 行,每行为一个长度在 11 到 100100 之间的字符串。

第 11 行为小 CC 掌握的一条加密信息。

第 22 行为第 11 行的加密信息所对应的原信息。

第 33 行为 RR 国司令部要求小 CC 翻译的加密信息。

输入数据保证所有字符串仅由大写字母‘ AA ’-‘ ZZ ’构成,且第 11 行长度与第 22 行相等。

输出格式:

共 11 行。

若破译密码停止时出现 2,32,3 两种情况,请你输出“ FailedFailed ”(不含引号,注意首字母大

写,其它小写)。

否则请输出利用密码翻译电报中加密信息后得到的原信息。

输入输出样例

输入样例#1: 复制

AA
AB
EOWIE
输出样例#1: 复制

Failed
输入样例#2: 复制

QWERTYUIOPLKJHGFDSAZXCVBN
ABCDEFGHIJKLMNOPQRSTUVWXY
DSLIEWO
输出样例#2: 复制

Failed
输入样例#3: 复制

MSRTZCJKPFLQYVAWBINXUEDGHOOILSMIJFRCOPPQCEUNYDUMPP
YIZSDWAHLNOVFUCERKJXQMGTBPPKOIYKANZWPLLVWMQJFGQYLL
FLSO
输出样例#3: 复制

NOIP

说明

【输入输出样例 11 说明】

原信息中的字母‘ AA ’和‘ BB ’对应相同的密字,输出“ FailedFailed ”。

【输入输出样例 22 说明】

字母‘ ZZ ’在原信息中没有出现,输出“ FailedFailed ”。

NOIP 2009 提高组 第一题

思路:模拟。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int ans=;
char a[],b[],c[],d[];
char e[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
int main(){
gets(a);gets(b);gets(c);
int len1=strlen(a);
int len3=strlen(c);
for(int i=;i<len1;i++)
for(int j=;j<;j++)
if(a[i]==e[j]) ans++;
if(ans<){ cout<<"Failed"; return ; }
for(int i=;i<len1;i++)
for(int j=;j<len1;j++)
if(a[i]==a[j]&&b[i]!=b[j]||a[i]!=a[j]&&b[i]==b[j]){
cout<<"Failed"; return ; }
for(int i=;i<len1;i++){
int s=;
for(int j=;j<len1;j++)
if(a[i]==b[j]) s=;
if(s==){ cout<<"Failed"; return ; }
}
for(int i=;i<len3;i++)
for(int j=;j<len1;j++)
if(c[i]==a[j]) d[i]=b[j];
for(int i=;i<len3;i++)
cout<<d[i];
}

NOIP 2009 潜伏者的更多相关文章

  1. 最优贸易 NOIP 2009 提高组 第三题

    题目描述 C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个 城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分 为双向通行的道路 ...

  2. 洛谷P1067 多项式输出 NOIP 2009 普及组 第一题

    洛谷P1067 多项式输出 NOIP 2009 普及组 第一题 题目描述 一元n次多项式可用如下的表达式表示: 输入输出格式 输入格式 输入共有 2 行 第一行 1 个整数,n,表示一元多项式的次数. ...

  3. NOIP 2009 靶形数独(DLX)

    小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向Z 博士请教,Z 博士拿出了他最近发明的“靶形数独”,作 ...

  4. NOIp #2009

    http://files.cnblogs.com/files/radiumlrb/NOIP2009%E6%8F%90%E9%AB%98%E7%BB%84%E5%A4%8D%E8%B5%9B%E8%AF ...

  5. noip 2009 细胞分裂

    /*数论题 考察唯一分解定理 当然用到一些技巧*/ #include<iostream> #include<cstdio> #include<cstring> #d ...

  6. noip 2009 道路游戏

    /*10分钟的暴力 意料之中的5分..*/ #include<iostream> #include<cstdio> #include<cstring> #defin ...

  7. 【noip 2009】 乌龟棋 记忆化搜索&动规

    题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起 ...

  8. [NOIp 2009]靶形数独

    Description 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博士拿出了他 ...

  9. [NOIp 2009]Hankson的趣味题

    Description Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课 ...

随机推荐

  1. ReactJS-0-React介绍

    React介绍: React是一个库而不是一个MVC框架,因为React只负责解决MVC框架中V(View)层面的问题,React致力于创建可重用的UI组件.(React is a library f ...

  2. 如何理解JavaScript的单线程

    JS的本质是单线程的.这点区别于JAVA的两个线程并发 但是,平时的JS,确实是同时运行很多任务,这又是怎么回事???? First,js的代码分为两种.同步代码和异步代码. console.log( ...

  3. window下phpstudy开启redis扩展

    注:一定要注意自己PHP的版本结构是64还是32位的!其次查看PHP Extension Build是NTS or TS! 1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本(特 ...

  4. SQL Server性能调优——报表数据库与业务数据库分离

    前段时间把公司的主数据库切了,分成业务库和报表库,业务库向报表库进行实时的Replication.这个项目的上线提升了系统的性能和可维护性,现在把设计时的考量和所做的工作重新回顾一下,作为备忘. 项目 ...

  5. swiper移动端下不能正常轮播的解决方案-----此坑没躺过估计很难找到正确姿势

    <script> var mySwiper = new Swiper('.swiper-container', { direction: 'vertical', //horizontal横 ...

  6. CentOS 6.4 linux下编译安装MySQL5.6.14

    CentOS 6.4下通过yum安装的MySQL是5.1版的,比较老,所以就想通过源代码安装高版本的5.6.14. 正文: 一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm ...

  7. Win10浏览器Spartan无法全屏

    昨天尝鲜win10 Build 10074 msdn pro版,新版微软吹嘘的Spartan浏览器看视频是无法像IE一样全屏的.网上搜索了一下也没有解决方法.不过看到一个可以打开隐藏设置实验功能的方法 ...

  8. (转) 淘淘商城系列——CMS内容管理系统工程搭建

    http://blog.csdn.net/yerenyuan_pku/article/details/72825801 淘淘商城系列——CMS内容管理系统工程搭建 上文我们一起搭建了表现层中的商城门户 ...

  9. VS2017 ATL创建ActiveX编程要点

    VS2017 ATL创建ActiveX控件编程要点: 一.创建vs项目需要安装器visual studio installer中: 安装 visual studio扩展开发中的 用于x86和x64的V ...

  10. 【Hadoop】一、分布式数据库HBase简介

    1.分布式数据库特点   说到数据库,我们最熟悉的是类似于mysql这样的关系型数据库,称为RDBMS.关系型数据库作为一种数据存储和数据检索的关键技术,它支持SQL语言的结构化查询,但是它天生不是为 ...