Skip to content

Instantly share code, notes, and snippets.

@arrdem
Created September 1, 2012 00:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arrdem/3561992 to your computer and use it in GitHub Desktop.
Save arrdem/3561992 to your computer and use it in GitHub Desktop.
(ns alice.core)
(defn candy-delta [ivec]
(map first
(reduce (fn [pr c]
(let [[ps pv] (last pr)]
(conj pr
(cond (empty? pr) [1 c]
(= pv c) [ps pv]
(< pv c) [(inc ps) c]
(> pv c) [(dec ps) c]))))
[] ivec)))
(defn simple-min-candy [ivec]
(let [dvec (candy-delta ivec)
m (apply min dvec)]
(cond (> 1 m) (map #(+ %1 (- 1 m)) dvec)
(< 1 m) (map #(- %1 (inc m)) dvec)
:else dvec)))
(defn -main [& args]
(let
[line-count (read)
v (map #(read) (range line-count))
]
(println line-count)
(println v)
(println (apply + (simple-min-candy v)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment