比赛 2012Day1 评测结果 AAAAAAAAAA
题目名称 Vigenère密码 最终得分 100
用户昵称 forever 运行时间 0.003 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2015-10-22 19:30:23
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
string a[27],s,k;
int main()
{
	freopen("vigenere.in","r",stdin);
	freopen("vigenere.out","w",stdout);
	a[1]="azyxwvutsrqponmlkjihgfedc";
	a[2]="bazyxwvutsrqponmlkjihgfed";
	a[3]="cbazyxwvutsrqponmlkjihgfe";
	a[4]="dcbazyxwvutsrqponmlkjihgf";
	a[5]="edcbazyxwvutsrqponmlkjihg";
	a[6]="fedcbazyxwvutsrqponmlkjih";
	a[7]="gfedcbazyxwvutsrqponmlkji";
	a[8]="hgfedcbazyxwvutsrqponmlkj";
	a[9]="ihgfedcbazyxwvutsrqponmlk";
	a[10]="jihgfedcbazyxwvutsrqponml";
	a[11]="kjihgfedcbazyxwvutsrqponm";
	a[12]="lkjihgfedcbazyxwvutsrqpon";
	a[13]="mlkjihgfedcbazyxwvutsrqpo";
	a[14]="nmlkjihgfedcbazyxwvutsrqp";
	a[15]="onmlkjihgfedcbazyxwvutsrq";
	a[16]="ponmlkjihgfedcbazyxwvutsr";
	a[17]="qponmlkjihgfedcbazyxwvuts";
	a[18]="rqponmlkjihgfedcbazyxwvut";
	a[19]="srqponmlkjihgfedcbazyxwvu";
	a[20]="tsrqponmlkjihgfedcbazyxwv";
	a[21]="utsrqponmlkjihgfedcbazyxw";
	a[22]="vutsrqponmlkjihgfedcbazyx";
	a[23]="wvutsrqponmlkjihgfedcbazy";
	a[24]="xwvutsrqponmlkjihgfedcbaz";
	a[25]="yxwvutsrqponmlkjihgfedcba";
	a[26]="zyxwvutsrqponmlkjihgfedcb";
	cin>>s>>k;
	int n=s.size(),v=0;
	int m=k.size();
	for(int i=0;i<n;i++) if(s[i]<97)s[i]+=32;
	for(int i=0;i<m;i++)
	{
		if(k[i]<97)//32
		{
			int b=a[k[i]-64][s[v]-97]-32;
			char w=b;
			cout<<w;
		}
		else cout<<a[k[i]-96][s[v]-97];
		v++;
		if(v>=n)v=0;
	}
	cout<<endl;
	return 0;
}