AOJ 0040 Affine Cipher
こんにちは川です。
今回は問題文にあるαとβを1~50までの間をひたすら探してthatかthisが出るまでひたすらfor文で回しただけのものでした。
非常に汚いね。
#include<bits/stdc++.h>
using
namespace
std;
int
main()
{
int
n;
char
st;
cin>>n;
string str;
for
(
int
i=0;i<=n;i++){
getline(cin,str);
bool
kawa=0;
for
(
int
j=1;j<50&&!kawa;j++){
for
(
int
k=1;k<50&&!kawa;k++){
string strin=str;
for
(
int
l=0;strin[l]!=
'\0'
;l++)
if
(strin[l]-
'a'
>=0&&strin[l]-
'z'
<=0)
strin[l]=(j*(strin[l]-
'a'
)+k)%26+
'a'
;
for
(
int
l=0;strin[l]!=
'\0'
;l++){
if
(strin[l]==
't'
&&strin[l+1]==
'h'
&&
(strin[l+2]==
'a'
&&strin[l+3]==
't'
||
strin[l+2]==
'i'
&&strin[l+3]==
's'
)){
cout<<strin<<endl;
kawa=1;
break
;
}
}
}
}
}
}