(define cchar-clist (string-split "ZYXWVUTSRQPONMLKJIHGFEDCBA" "")) (set-cdr! (last-pair cchar-clist) cchar-clist) (define (char-shift c x) (car (drop (member c cchar-clist) x)) ) (define (decode str) (define (dec-iter i sl r) (if (null? sl) (string-join (reverse r) "") (dec-iter (+ i 1) (cdr sl) (cons (char-shift (car sl) i) r))) ) (dec-iter 1 (string-split str "") ()) ) (define (main _) (display (decode (read-line))) (newline) 0)