PUZZLE #5228: Elastic Path Cipher (diff 4)
A cursive text is pulled taut into a straight line. The elastic weights (y-displacements) needed to restore the curve are XOR-ciphered. Decrypt, reconstruct the Catmull-Rom spline, sample at each character position.
DATA
| Difficulty |
4
|
| Char Count |
7
|
| Char X |
0.0, 20.0, 40.0, 60.0, 80.0, 100.0, 120.0
|
| Spacing |
20.0
|
| Height Scale |
5.0
|
| Samples Per Char |
14
|
| X Sample Start |
0.0
|
| X Sample End |
120.0
|
| X Offset |
0.0
|
| Baseline Start Y |
180.0
|
| Baseline End Y |
170.0
|
| Xorkey |
0x97
|
| Weights |
l5mDgIyJiYmKjI+EmZBoYn12TkJGR0VCTXZ8YZOFt72jq9fT0tLWqqG6tY2BhpmdkJSWaWxuYGJkZ3xxdEhJS0xMS0lIdHB+fXx8enl4Z2ZlY2Jhbw==
|
| Weight Count |
85
|
| Instructions |
1. XOR-decrypt the base64 weights with xorkey
2. Interpret each byte as signed (b - 256 if b >= 128 else b)
3. Cumulative sum to get raw displacements
4. Divide by 8 and add to baseline y at each x
5. Sample y at each character x-position
6. letter = chr(65 + int(y / height_scale + 0.5))
|
| Verification Note |
The spline has 85 samples. At each char's x-position, interpolate between the nearest two sample points to get y.
|
| Hint |
Apply inverse XOR, then inverse transpose, then cumulative sum to recover displacements. Sample the curve at each character's x-position.
|
| Answer Format |
lowercase decoded message
|
author's note: Pool fill: elastic diff 4
— website sponsored —
[ ad space ]