チームnicklegrで個人参加。 1000点で230位(1028チーム中)でした。 Vigenere3d (Crypto 100) ヴィジュネル暗号リベンジ。今年は置換表が3次元配列。鍵は14文字。 通常のヴィジュネル暗号では平文と暗号文のペアがあれば一文字ずつ鍵が分かる。 置換表が3次元なので鍵は2文字の組み合わせになる。なので一意には決まらないけど、どの組み合わせでも解読結果は同じになるので、適当に1つ選べばいい。(たぶん。うまく言えない) 下記を実行すると、 def find(plain, cipher): s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz_{}" t = [[_l((i+j) % len(s), s) for j in range(len(s))] for i in range(