17 lines
551 B
Clojure
17 lines
551 B
Clojure
(defn delta [entry]
|
|
(case (second (re-find #"\ (.*)\ @" entry))
|
|
"IN " -1
|
|
"OUT" 1
|
|
(throw (Exception. (str "Invalid entry:" entry)))))
|
|
|
|
(defn t [entry]
|
|
(second (re-find #"@\ (.*)\ f" entry)))
|
|
|
|
(let [entries (clojure.string/split (slurp "mlijobs.txt") #"\n")
|
|
in-use (reductions + (map delta entries))
|
|
m (apply max in-use)
|
|
times (map #(nth (map t entries) %)
|
|
(keep-indexed #(when (= m %2) %1) in-use))]
|
|
(println "Maximum simultaneous license use is" m "at the following times:")
|
|
(map println times))
|