(define-syntax v-update! (syntax-rules (v~) [(_ (v~ v i) f) (vector-set! v i (f (vector-ref v i)))] [(_ (v~ v i j ...) f) (v-update! (v~ (vector-ref v i) j ...) f)])) (define (main args) (let* ([n (read)] [ht (make-hash-table)] [v (make-vector 8 0)]) (do [(i n (- i 1))] [(zero? i)] (let* ([s (read)] [c (read)]) (hash-table-put! ht s c))) (hash-table-for-each ht (^[_ i] (v-update! (v~ v i) (pa$ + 1)))) (vector-for-each print v)) 0)