社区讨论

救救我吧

P1079[NOIP 2012 提高组] Vigenère 密码参与者 4已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lo8dnroc
此快照首次捕获于
2023/10/27 16:54
2 年前
此快照最后确认于
2023/10/27 16:54
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int a[100005];
int main()
{
	freopen("vigenere.in","r",stdin);
	freopen("vigenere.out","w",stdout);
	string k,mw;
	cin>>k>>mw;
	for(int i=0;i<k.size();i++) 
	{
		if(k[i]>'Z'+1) a[i+1]=k[i]-'a';
		else a[i+1]=k[i]-'A';
	}
	int kk=k.size();
	for(int i=0;i<mw.size();i++)
	{
		if(k[i]>'Z') 
		{
			mw[i]-=a[(i+1)%kk];
			if(mw[i]>'z') mw[i]=mw[i]-24;
		}
		else
		{
			mw[i]-=a[(i+1)%kk];
			if(mw[i]>'Z') mw[i]=mw[i]-24;
		}
	}
	cout<<mw;
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...