(use scheme.list) (use util.match) (use srfi.13) ; string (use srfi.42) ; list-ec (define input read-line) (define (ii) (string->number (read-line))) (define (li) (let ((s (read-line))) (map string->number (string-split s " ")))) (define (prn . args) (for-each (lambda (i x) (when (> i 0) (display " ")) (display x)) (iota (length args)) args) (newline)) (define int string->number) (define-method min ((xs )) (apply min xs)) (define (minmax . xs) (apply min&max xs)) (define-method minmax ((xs )) (apply min&max xs)) (define (sum xs) (apply + xs)) (define divmod div-and-mod) (define pow (case-lambda ((a b) (expt a b)) ((a b m) (expt-mod a b m)))) (use gauche.sequence) (define (solve s) (let ((xs '(("0b" 2) ("0o" 8) ("0x" 16)))) (match (find (^p (string-prefix? (car p) s)) xs) ((_ base) (string->number (subseq s 2) base)) (else s)))) (let* ((T (ii))) (dotimes (_ T) (let ((S (input))) (prn (solve S)))))