savvy use of map-indexed and set (sorted by default)
(fn [s] (map #(vector (second (first %)) (second (last %))) (partition-by #(first %) (map-indexed #(vector (- %2 %1) %2) (set s)))))