summaryrefslogtreecommitdiff
path: root/2016/4b.py
diff options
context:
space:
mode:
Diffstat (limited to '2016/4b.py')
-rwxr-xr-x2016/4b.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/2016/4b.py b/2016/4b.py
new file mode 100755
index 0000000..a9b631b
--- /dev/null
+++ b/2016/4b.py
@@ -0,0 +1,11 @@
+#!/usr/bin/env python3
+
+import sys, re, functools
+
+encr=filter(lambda t:"".join(x[1] for x in sorted([(len(p[0]),p[1]) for p in re.findall(r"((.)\2*)","".join(sorted(t[0].replace("-",""))))],key=lambda t:(-t[0],t[1]))[:5])==t[2],[re.match(r"([-a-z]+)-(\d+)\[([a-z]+)\]",r).groups() for r in sys.stdin.read().split("\n")[:-1]])
+
+decr=[("".join(" " if c=="-" else "".join(chr(x) for x in range(97,123))[(ord(c)-97+int(r[1]))%26] for c in r[0]),r[1]) for r in encr]
+
+found=next(r for r in decr if r[0].find("northpole")!=-1)[1]
+
+print(found)