Again, these memes, we have even stopped talking to them. Just look at it, they seem to be crazy.
次のファイルが与えられる
kappa_pride pepe kappa look_at_this_dude kappa trollface look_at_this_dude kappa_pride look_at_this_dude look_at_this_dude kappa_pride trollface look_at_this_dude look_at_this_dude pepe kappa_pride trollface kappa pepe look_at_this_dude kappa_pride kappa_pride trollface kappa_pride trollface look_at_this_dude look_at_this_dude trollface look_at_this_dude look_at_this_dude pepe look_at_this_dude look_at_this_dude pepe look_at_this_dude look_at_this_dude look_at_this_dude kappa kappa_pride pepe look_at_this_dude pepe trollface look_at_this_dude look_at_this_dude kappa_pride trollface trollface pepe look_at_this_dude look_at_this_dude kappa_pride kappa kappa look_at_this_dude kappa kappa_pride pepe look_at_this_dude kappa_pride look_at_this_dude kappa kappa_pride look_at_this_dude kappa trollface kappa_pride kappa kappa kappa_pride trollface kappa_pride kappa_pride kappa look_at_this_dude trollface look_at_this_dude pepe pepe look_at_this_dude pepe kappa_pride kappa look_at_this_dude look_at_this_dude kappa trollface look_at_this_dude kappa trollface kappa_pride kappa kappa pepe look_at_this_dude look_at_this_dude pepe look_at_this_dude pepe pepe look_at_this_dude look_at_this_dude kappa_pride trollface kappa_pride pepe look_at_this_dude look_at_this_dude kappa_pride trollface kappa trollface kappa kappa kappa
数えてみる
21 kappa
22 kappa_pride
38 look_at_this_dude
17 pepe
17 trollface
5進数とかだろうか。それぞれに0-4を割り当てるとして、総数は5!程度なので小さいしやってみる
from itertools import permutations with open("challenge.txt") as f: lines = f.read().strip().replace("kappa_pride", "x").split("\n") words = ["kappa", "x", "look_at_this_dude", "pepe", "trollface"] for ws in permutations(words): s = "" for l in lines: l2 = l.replace(' ', '') for i, w in enumerate(ws): l2 = l2.replace(w, str(i)) s += chr(int(l2, 5)) print(s)
itertools.permutations
をきれいに使ってかけた。Haskellなんかをつかうともっとうまくかけるのかな。
出力結果からフラグを探すと見つかった。
$ python3 solve.py | grep -i Aero Aero{7a911ccfb18c2fafe2960b6ee2cbc9c7}