; anna's homework
(define (anna xs)
(let ((ht (make-eq-hashtable)) (n (length xs)))
(let loop ((xs xs))
(if (pair? xs)
(begin (hashtable-update! ht (car xs) add1 0)
(loop (cdr xs)))
(call-with-values
(lambda () (hashtable-entries ht))
(lambda (keys vals)
(let loop ((k 0) (result (list)))
(if (= k (vector-length keys)) result
(if (< (/ n 3) (vector-ref vals k))
(loop (+ k 1) (cons (vector-ref keys k) result))
(loop (+ k 1) result))))))))))
(display (anna '(1 1 2 2 1 1 1 5 6 7))) (newline)
(display (anna '(1 1 1 1 2 2 2 2 3 4))) (newline)
(display (anna '(1 2 3 4 5))) (newline)
OyBhbm5hJ3MgaG9tZXdvcmsKCihkZWZpbmUgKGFubmEgeHMpCiAgKGxldCAoKGh0IChtYWtlLWVxLWhhc2h0YWJsZSkpIChuIChsZW5ndGggeHMpKSkKICAgIChsZXQgbG9vcCAoKHhzIHhzKSkKICAgICAgKGlmIChwYWlyPyB4cykKICAgICAgICAgIChiZWdpbiAoaGFzaHRhYmxlLXVwZGF0ZSEgaHQgKGNhciB4cykgYWRkMSAwKQogICAgICAgICAgICAgICAgIChsb29wIChjZHIgeHMpKSkKICAgICAgICAgIChjYWxsLXdpdGgtdmFsdWVzCiAgICAgICAgICAgIChsYW1iZGEgKCkgKGhhc2h0YWJsZS1lbnRyaWVzIGh0KSkKICAgICAgICAgICAgKGxhbWJkYSAoa2V5cyB2YWxzKQogICAgICAgICAgICAgIChsZXQgbG9vcCAoKGsgMCkgKHJlc3VsdCAobGlzdCkpKQogICAgICAgICAgICAgICAgKGlmICg9IGsgKHZlY3Rvci1sZW5ndGgga2V5cykpIHJlc3VsdAogICAgICAgICAgICAgICAgICAoaWYgKDwgKC8gbiAzKSAodmVjdG9yLXJlZiB2YWxzIGspKQogICAgICAgICAgICAgICAgICAgICAgKGxvb3AgKCsgayAxKSAoY29ucyAodmVjdG9yLXJlZiBrZXlzIGspIHJlc3VsdCkpCiAgICAgICAgICAgICAgICAgICAgICAobG9vcCAoKyBrIDEpIHJlc3VsdCkpKSkpKSkpKSkKCihkaXNwbGF5IChhbm5hICcoMSAxIDIgMiAxIDEgMSA1IDYgNykpKSAobmV3bGluZSkKKGRpc3BsYXkgKGFubmEgJygxIDEgMSAxIDIgMiAyIDIgMyA0KSkpIChuZXdsaW5lKQooZGlzcGxheSAoYW5uYSAnKDEgMiAzIDQgNSkpKSAobmV3bGluZSk=