出现RE,50分求调
查看原帖
出现RE,50分求调
970141
GreenMelon楼主2024/3/3 19:31
////////////////////init////////////////////
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
string x, y;
char cd[105][105], cx[105][105];
void init();
char change(char a, char b);
////////////////////main////////////////////
int main(){
	cin>>x>>y;
	init();
	for(int i=0;i<y.size();i++){
		if(y[i]>='a' && y[i]<='z'){
			y[i]=y[i]-'a'+'A';
			if(x[i%x.size()]>='a' && x[i%x.size()]<='z')x[i%x.size()]=x[i%x.size()]-'a'+'A';
			y[i]=change(x[i%x.size()], y[i]);
			y[i]=y[i]-'A'+'a';
		}
		else{
			y[i]=change(x[i%x.size()], y[i]);
		}
	}
	cout<<y;
	return 0;
}
////////////////////function////////////////////
void init(){
	for(int i=0;i<26;i++){
		for(int j=0;j<26;j++){
			cd[i][j]=(i+j)%26+'A';
		}
	}for(int i=0;i<26;i++){
		for(int j=0;j<26;j++){
			cx[i][j]=(i+j)%26+'a';
		}
	}
}
char change(char a, char b){
	//a:密钥
	//b:密文
	for(int i=0;i<26;i++){
		if(cd[a-'A'][i]==b)return i+'A';
	}
}
2024/3/3 19:31
加载中...