记录编号 467763 评测结果 AAAAAAAAAA
题目名称 [NOIP 2012]Vigenère密码 最终得分 100
用户昵称 Gravatar烟雨 是否通过 通过
代码语言 C++ 运行时间 0.004 s
提交时间 2017-10-31 09:20:50 内存使用 0.32 MiB
显示代码纯文本
#include<fstream>
#include<cstring>
#include<algorithm>
using namespace std;
ifstream cin("vigenere.in");
ofstream cout("vigenere.out");
string ming,mi;
int s[101],n,l,it;
int main()
{
	cin>>mi>>ming;
	n=mi.length();
	l=ming.length();
	for(int i=0;i<n;i++)
	{
		s[i]=(mi[i]-'a'>=0 ? mi[i]-'a' : mi[i]-'A');
		//cout<<s[i]<<endl;
	}
	it=0;
	for(int i=0;i<l;i++,it++)
	{
		if(ming[i]>='a')
		{
			char p=int(ming[i])-s[it]>='a' ? ming[i]-s[it] : ming[i]-s[it]+26;
			cout<<p;
		}
		else 
		{
			char p=int(ming[i])-s[it]>='A' ? ming[i]-s[it] : ming[i]-s[it]+26;
			cout<<p;
		}
		//if(it==0)cout<<endl<<ming[i]<<endl;
		if(it==n-1)it=-1;
		//if(ming[i]=='n' && it==0)cout<<endl<<it<<endl;
	}
	cin.close();
	cout.close();
	return 0;
}