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