显示代码纯文本
#include<fstream>
#include<string>
#include<cstring>
#include<iostream>
using namespace std;
string k,m;
ifstream in ("vigenere.in");
ofstream out ("vigenere.out");
inline char fucker (char f,char y)
{
if(f+'A'-'Z'>y)
return f-'Y'+y;
return f-y+'A';
}
int main ()
{
in>>k;
in>>m;
int mod=k.length();
char temp;
bool flag=0;
for (int i=0;i<m.length();++i)
{
if ('a'<=m[i]&&m[i]<='z')
flag=1;
else flag=0;
temp=fucker ( toupper(m[i]),toupper(k[i%mod]) );
if (flag)
out<<char(tolower(temp));
else out<<char(temp);
}
return 0;
}