<?php
// 3文字の小文字ということで、暗号化キーは 97-122 の間になる。
// 26*26*26
// 記号は含まないだろうと想定して、
// xorしたときに、0-47,127 になったら誤りということで。
$file = file_get_contents('problem59.txt');
$data = explode("," , $file);
$flag = false;
for($a = 97 ; $a <= 122 ; $a++)
{
for($b = 97 ; $b <= 122 ; $b++)
{
for($c = 97 ; $c <= 122 ; $c++)
{
$array = array(0=>$a,1=>$b,2=>$c);
if(check($array,$data))
{
$flag = true;
break;
}
}
if($flag)
{
break;
}
}
if($flag)
{
break;
}
}
$answer = 0;
foreach($data as $k => $v)
{
$answer += $array[$k % 3] ^ $v ;
}
echo $answer."\n";
function check($array,$data)
{
$flag = true;
foreach($data as $k => $v)
{
$tmp = $array[$k % 3] ^ $v ;
if($tmp <= 31 or $tmp >= 123 or $tmp == 64)
{
$flag = false;
break;
}
}
return $flag;
}
?>