比赛 2012Day1 评测结果 AAAAAAAAAA
题目名称 Vigenère密码 最终得分 100
用户昵称 stdafx.h 运行时间 0.002 s
代码语言 C++ 内存使用 0.30 MiB
提交时间 2015-10-22 19:30:15
显示代码纯文本
#define MAXN 5000UL

#include <cstdio>
#include <cstring>

char key[MAXN],mis[MAXN];

int s1,s2;

char Cal(char a,char b){
	if(a>='A'&&a<='Z'){
		a+=32;
	}
	if(b>='a'&&b<='z'){
		int p=a-'a';
		b-=p;
		if(b<'a'){
			b+=26;
		}
		return b;
	}
	else{
		b+=32;
		int p=a-'a';
		b-=p;
		if(b<'a'){
			b+=26;
		}
		return b-32;
	}
}

int main(){
	freopen("vigenere.in","r",stdin);
	freopen("vigenere.out","w",stdout);
	scanf("%s%s",key,mis);
	s1=strlen(key),s2=strlen(mis);
	for(int i=0;i<s2;i++){
		printf("%c",Cal(key[i%s1],mis[i]));
	}
	return 0;
}