diff --git a/drmmessages.py b/drmmessages.py new file mode 100644 index 0000000..fc232a0 --- /dev/null +++ b/drmmessages.py @@ -0,0 +1,23 @@ +def sumOfValuesOfCharacters(s: str) -> int: + return sum([ord(c) - 65 for c in s]) + + +def rotateString(s: str, r: int) -> str: + return "".join([chr(((ord(c) - 65 + r) % 26) + 65) for c in s]) + + +def mergeStrings(a: str, b: str) -> str: + return "".join( + [rotateString(ca, sumOfValuesOfCharacters(cb)) for ca, cb in zip(a, b)] + ) + + +def decrypt(drmmessage): + half = len(drmmessage) // 2 + a, b = drmmessage[:half], drmmessage[half:] + rota = rotateString(a, sumOfValuesOfCharacters(a)) + rotb = rotateString(b, sumOfValuesOfCharacters(b)) + return mergeStrings(rota, rotb) + + +print(decrypt(input()))