比赛 NOIP2015普及组练习 评测结果 AAAAAAAAAA
题目名称 Vigenère密码 最终得分 100
用户昵称 AAAAAAAAAA 运行时间 0.021 s
代码语言 C++ 内存使用 0.28 MiB
提交时间 2015-11-02 19:10:21
显示代码纯文本
#include<fstream>
#include<string>
using namespace std;
int main(){
	ifstream fin("vigenere.in");
	ofstream fout("vigenere.out");
	string a,b;
	int i,x,y,p;
	fin>>a>>b;
	x=a.length();
	y=b.length();
	while(x<y){
		a=a+a;
		x=x*2;
	}
	p=a.length();
	for(i=0;i<p;i++){
		if(a[i]>='A'&&a[i]<='Z'){
			a[i]=char(a[i]+32);}}
	for(i=0;i<y;i++){
		if(b[i]>='a'&&b[i]<='z'){
			if(b[i]-(a[i]-'a')>='a'){
			fout<<char(b[i]-(a[i]-'a'));}
			if(b[i]-(a[i]-'a')<'a'){
			fout<<char(b[i]+26-(a[i]-'a'));}}
		if(b[i]>='A'&&b[i]<='Z'){
			if(b[i]-(a[i]-'a')>='A'){
			fout<<char(b[i]-(a[i]-'a'));}
			if(b[i]-(a[i]-'a')<'A'){
			fout<<char(b[i]+26-(a[i]-'a'));}}}
	fin.close();
	fout.close();
	return 0;
}