信息战(二)——想法

信息战(二)——破解密码

Time Limit: 1000ms
Memory Limit: 65536KB
 
64-bit integer IO format:  %lld      Java class name:  Main
在A国发明出了一种加密方法以后,A国的敌方C国的情报人员非常头疼,因为如此他们就没法获得他们所需要的情报了,战场上的优势转眼之
间就消失了,双方进入了胶着状态。为了打破这种局面,C国情报部门决定让HT解决这个问题。HT派出了间谍对A国情报传递过程进行窃听,
得到了一个数字(上题目中提到的,X或Y)以及一个在明文中出现过的单词(全大写)。现在HT聘请你根据这两个信息写出一个破译程序,
要求按照明文顺序输出。由于情报部门的优秀工作,HT能确定在他给出对应信息后只会有一组解。

Input

第一行至文件末尾,每一行:一个数字N(0 < N <= 200),一个单词(长度L <= 10)一个密文(密文长度小于等于40000)。
 

Output

处理后的明文。
 

Sample Input

3 PROBLEM PBMRLAOEB
3 TEST TTCEADSBE
3 LIST LTCIADSBE
3 UNIVERSAL UVSNEAIRL
6 EXAMPLE TAOMCHVNPDIEGLESREEFIYXAGSLABH
 

Sample Output

PROBLEMAB
TESTABCDE
LISTABCDEUNIVERSAL
THISISAVERYLONGEXAMPLEABCDEFGH
 

Source

第七届北京师范大学程序设计竞赛热身赛第二场

Author

51isoft

Tags ( Click to see )

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<queue>
 4 #include<cstdio>
 5 #include<cstdlib>
 6 #include<cstring>
 7 #include<cmath>
 8 #include<ctype.h>
 9 using namespace std;
10 #define sr(x) scanf("%d",&x)
11 #define sc(x) printf("%d",x)
12 #define hh printf("\n")
13 char a[40001],b[40001],d[20];
14 bool zh(int x,int y)
15 {
16     int i,j,k=0;
17     for(i=0;i<y;i++)
18     {
19         for(j=0;j<x;j++)b[i+j*y]=a[k++];
20     }
21     b[x*y]='\0';
22 
23 
24     return strstr(b,d);
25 }
26 
27 
28 int main()
29 {
30     int n;
31     while(scanf("%d%s%s",&n,&d,&a)!=EOF)
32     {
33         int l;
34         l=strlen(a);
35         if(zh(n,l/n));
36         else zh(l/n,n);
37         printf("%s\n",b);
38     }
39     return 0;
40 }

 

转载于:https://www.cnblogs.com/lveternal/p/3413487.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值