四组MLE,求调
查看原帖
四组MLE,求调
1098507
zdnzkzl楼主2024/4/13 18:41
#include <iostream>
#include <cstdio>
#include <string>
#include <cmath>
using namespace std;
char biao[30][30];
string ans;
int main(){
	//freopen("vigenere.in","r",stdin);
	//freopen("vigenere.out","w",stdout);
	string k,mi;
	cin>>k>>mi;
	int lenk=k.size();
	int lenmi=mi.size();
	int ggg=ceil(lenmi/lenk);
	for(int i=1;i<=ggg;++i){
		k+=k;
	}
	lenk=k.size();
	int mii[lenmi];
	for(int i=0;i<lenk;++i){
		if(k[i]>='a'&&k[i]<='z'){
			k[i]=k[i]-'a'+'A';
		}
	}
	for(int i=0;i<lenmi;++i){
		if(mi[i]>='a'&&mi[i]<='z'){
			mi[i]=mi[i]-'a'+'A';
			mii[i]=1;
		}else{
			mii[i]=0;
		}
	}
	for(int i=0;i<26;++i){
		int sss=i;
		for(int j=0;j<26;++j){
			biao[i][j]=(sss%26)+'A';
			sss++;
		}
	}
	for(int i=0;i<lenmi;++i){
		for(int j=0;j<26;++j){
			if(biao[ k[i]-'A' ][j]==mi[i]){
				char c=j+'A';
				ans+=c;
			}
		}
	}
	for(int i=0;i<lenmi;++i){
		if(mii[i]==1){
			char fff=ans[i]-'A'+'a';
			cout<<fff;
		}else{
			cout<<ans[i];
		}
	}
	return 0;
}
2024/4/13 18:41
加载中...