📄 1009.cpp
字号:
#include<iostream>
#include<fstream>
#include<vector>
#include<string>
using namespace std;
int index(int i,int n){
while(i>=n) i-=n;
while(i<0 ) i+=n;
return i;
}
int main(){
//ifstream cin("1009.txt");
int n,k,i,j,l,t,b,casenum=1;
char c;
string s;
while(cin>>n&&n){
if(casenum>1) cout<<endl;
cout<<"Enigma "<<casenum++<<":\n";
vector<int> r1(n),r2(n),r3(n);
for(i=0;i<n;i++){
cin>>c;
r1[i]=(c-'A'-i);
//cout<<r1[i]<<" ";
}
//cout<<endl;
for(i=0;i<n;i++){
cin>>c;
r2[i]=(c-'A'-i);
//cout<<r2[i]<<" ";
}
//cout<<endl;
for(i=0;i<n;i++){
cin>>c;
r3[i]=(c-'A'-i);
//cout<<r3[i]<<" ";
}
//cout<<endl;
cin>>l;
for(j=0;j<l;j++){
cin>>s;
int i1=0,i2=0,i3=0;
for(i=0;i<s.length();i++){
t=s[i]-'A';
//t+=r3[index(t-i3,n)];
//t+=r2[index(t-i2,n)];
//t+=r1[index(t-i1,n)];
//t=index(t,n);
for(b=0;b<n;b++){
int q=b;
q+=r1[index(q-i1,n)];
q=index(q,n);
q+=r2[index(q-i2,n)];
q=index(q,n);
q+=r3[index(q-i3,n)];
q=index(q,n);
if(q==t) break;
}
c=char('a'+b);
cout<<c;
i1+=1;
if(i1==n){i1=0;i2++;}
if(i2==n){i2=0;i3++;}
if(i3==n){i3=0;}
}
cout<<endl;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -