1013 喝醉的选手

来源:互联网 发布:qq自动加人软件 编辑:程序博客网 时间:2024/06/11 12:22
 

喝醉的选手

时间限制:1000 ms | 内存限制:65536 KB
描述

为了庆祝2007年北航ACM训练队出色的完成了ACM国际大学生程序设计竞赛亚洲区预选赛南京赛区、吉林赛区、成都赛区的参赛任务,以及北京赛区的竞赛组织工作。2008年1月19日,在Leo的带领(请客)下,训练队全体竞赛选手以及北京赛区组织人员一道,在汉某轩烧烤超市举行庆功晚宴。

由于汉某轩的二锅头是免费供应的,当大家都在烤肉的时候,队里的某个同学却在一瓶接一瓶地灌二锅头……

于是他醉了……

他喝醉的时候有这样一个有意思的现象。他喝醉的时候,按电脑键盘(如下图)的时候,总是会有规律的向右错一位。

 

比如,当他想按数字键1,他就会按成2键。此外,他只会伸手按下面这些按键:

  • 数字键
  • 除去Q A Z之外剩下的字母键
  • 键盘上除了`之外的一些特殊符号,(如 - = [ \ / )

但是,他不会特意去按键盘上的控制按键 如TAB ,Control,BackSp等等。

当他想输入空格键或者回车换行的时候,他总是能准确按到所希望的按键。

第二天,大家在实验室中他使用的计算机的屏幕上看到了一些奇怪的文字,那显然是他在喝醉之后留下的。我们想知道他原来想表达什么信息。

输入

输入数据包含许多行,每一行包括一些字符,这些字符可能包括,数字,字符(除Q,A,Z以外),符号(除`以外),空格。

输出

对于输入的每一个字符,请你还原他原来想按下的键盘按键。

样例输入
O S, GOMR YPFSU/
样例输出

I AM FINE TODAY.

模拟题,找到对应关系即可

#include <stdio.h>main(){char a[1000];char b1[100],b2[100];int i,j;b1[0]='`';b2[0]='1';b1[1]='1';b2[1]='2';b1[2]='2';b2[2]='3';b1[3]='3';b2[3]='4';b1[4]='4';b2[4]='5';b1[5]='5';b2[5]='6';b1[6]='6';b2[6]='7';b1[7]='7';b2[7]='8';b1[8]='8';b2[8]='9';b1[9]='9';b2[9]='0';b1[10]='0';b2[10]='-';b1[11]='-';b2[11]='=';b1[12]='Q';b2[12]='W';b1[13]='W';b2[13]='E';b1[14]='E';b2[14]='R';b1[15]='R';b2[15]='T';b1[16]='T';b2[16]='Y';b1[17]='Y';b2[17]='U';b1[18]='U';b2[18]='I';b1[19]='I';b2[19]='O';b1[20]='O';b2[20]='P';b1[21]='P';b2[21]='[';b1[22]='[';b2[22]=']';b1[23]=']';b2[23]='\\';b1[24]='A';b2[24]='S';b1[25]='S';b2[25]='D';b1[26]='D';b2[26]='F';b1[27]='F';b2[27]='G';b1[28]='G';b2[28]='H';b1[29]='H';b2[29]='J';b1[30]='J';b2[30]='K';b1[31]='K';b2[31]='L';b1[32]='L';b2[32]=';';b1[33]=';';b2[33]='\'';b1[34]='Z';b2[34]='X';b1[35]='X';b2[35]='C';b1[36]='C';b2[36]='V';b1[37]='V';b2[37]='B';b1[38]='B';b2[38]='N';b1[39]='N';b2[39]='M';b1[40]='M';b2[40]=',';b1[41]=',';b2[41]='.';b1[42]='.';b2[42]='/';b1[43]=' ';b2[43]=' ';b1[44]='\n';b2[44]='\n';while(gets(a)!=NULL){               for(i=0;a[i]!='\0';i++)   for(j=0;j<=44;j++)   if(a[i]==b2[j])   a[i]=b1[j];   for(i=0;a[i]!='\0';i++)   printf("%c",a[i]);      printf("\n");  }}

原创粉丝点击