naoto #4707(2007/12/09 14:57 GMT) [ Scheme ] Rating0/0=0.00
9:user> (print-result amidakuji) A B C D E | | |-| | |-| | |-| | |-| |-| |-| |-| | |-| | | | B D C A E => #<undef> 10:user>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
(define amidakuji (string-append "A B C D E\n" "| | |-| |\n" "|-| | |-|\n" "| |-| |-|\n" "|-| |-| |\n" "|-| | | |\n" )) (define (first-state line) (map string->symbol (string-split line #\space))) (define (update-state line prev-state) (let1 amida (cdr (string-split line #\|)) (fold-right (lambda (s a k) (if (string=? a "-") (cons* (car k) s (cdr k)) (cons s k))) '() prev-state amida))) (define (solve amida) (call-with-input-string amida (lambda (in) (port-fold (cut update-state <> <>) (first-state (read-line in)) (cut read-line in))))) (define (print-result amida) (display amida) (print (string-join (map symbol->string (solve amida)) " ")))
Rating0/0=0.00-0+
[ reply ]
naoto
#4707()
[
Scheme
]
Rating0/0=0.00
Rating0/0=0.00-0+
[ reply ]