比赛 2012Day1 评测结果 C
题目名称 Vigenère密码 最终得分 0
用户昵称 XUEYAN 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2015-10-22 20:12:49
显示代码纯文本
var M,k:ansistring;
 k2:array[1..1024]of integer;
 N:array[1..1024]of char;
 i,a:longint;
begin
assign(input,'vigenere.in');reset(input);
assign(output,'vigenere.out');rewrite(output);
 readln(k);
 readln(M);
 for i:=1 to length(k) do
 k2[i]:=ord(upcase(k[i]))-ord('A');
 for i:=1 to length(M) do
 if ord(M[i])<=ord('Z') then
 begin
 a:=ord(M[i])-k2[(i-1) mod length(k)+1];
 if a<ord('A') then a:=a+26;
 N[i]:=chr(a);
 end
 else begin
 a:=ord(M[i])-k2[(i-1) mod length(k)+1];
 if a<ord('a') then a:=a+26;
 N[i]:=chr(a);
 end;
 for i:=1 to length(M) do
 write(N[i]);
 close(input);close(output);
end.