信息战(一)——加密程序
2016-01-28 11:25
351 查看
信息战(一)——加密程序
Time Limit: 1000ms MemoryLimit: 65536KB
64-bit integer IO format: %lld Java class name: Main
Prev Submit Status Statistics Discuss Next
在战争时期,各个国家都要保证军队的行动保密性,所以在信息传达时会采取各种加密方法。有一天,A国安全局成员Oo(也就是传说中的ZSL),发明了一种对指令的加密方法。具体操作如下,取两个正整数X、Y,对于一段明文字符串,将其按行填入一个X行Y列的矩阵中(非字母不填、而且所有字母要求权转换为大写),若未填满,则按字母表顺序顺次填充(’A’…’Z’循环填充)。比如对于X=3,Y=3,明文为”Problem”时,矩阵填充后的结果为:
PRO
BLE
MAB
这样,Oo就得到了一个矩阵,将他按列输出就得到了Oo所要的的密文“PBMRLAOEB”。由于A国编程人员奇缺。所以Oo向你求助,希望你能够帮助他写一个加密程序,从而使得对于任意给定的X、Y以及明文,程序都能输出正确的密文。
Input
第一行X,Y(0 < X <= 200,0 < Y <= 200)。第二行至末尾每行均为一个明文(保证明文中字母的个数N <= X*Y)。
Output
对于每一行明文输出对应的一行密文。
Sample Input
3 3 Problem t e s t l I 156-*/- S t u 45/-90 N I v \908() 8768 *er #!@$& S a L
Sample Output
PBMRLAOEB TTCEADSBE LTCIADSBE UVSNEAIRL
Source
第七届北京师范大学程序设计竞赛热身赛第二场
Author
51isoft
代码:
#include"cstdio" #include"cstring" #include"iostream" #include"algorithm" using namespace std; char code[40005]; char c[10000000]; int main() { int x,y; while(~scanf("%d%d",&x,&y)) { int cnt = 0; getchar(); //读入\n while(gets(c)) { int len = strlen(c); for(int i = 0;i < len;i++) { if(isalpha(c[i])) { code[cnt] = toupper(c[i]); cnt++; } } if(cnt < x*y) { for(int i = cnt;i < x*y;i++) { code[i] = (i-cnt) % 26 + 'A'; } } for(int j = 0;j < y;j++) { for(int i = 0;i < x;i++) { printf("%c",code[j + i*y]); } } printf("\n"); cnt = 0; memset(code,0,sizeof(code)); } } return 0; }
相关文章推荐
- spring4整合mybatis3
- js 事件监听 兼容浏览器
- Emacs显示光标在哪个函数
- JVM内存模型
- Java后台发送Post和get请求 (并解决返回值乱码问题)
- 根据NSString 转化为 NSDate , 进而根据NSDate 计算年龄
- javascript中有趣的面向对象的思想
- PowerDesinger 安装打印机
- 表单元素之搭车系
- Unity 5.3.1 No Android/IOS module loaded
- [原创][SW]一些实用软件的小tips(长期更新)
- wp已死,metro是罪魁祸首!
- Mahout(一):数据承载
- cocoapods 安装使用
- Spring Boot application.properties或application.yml相关配置
- VMware Workstation出现“内部错误”的解决办法
- 编写可读代码的艺术chapter 1-6
- Android手机拍照或选取图库图片作为头像
- HBase总结(二十)HBase经常使用shell命令具体说明
- UT-Austin大学在Image search and large-scale retrieval方面的一系列papers