Skip to content

Instantly share code, notes, and snippets.

@edgarmueller
Created April 5, 2011 16:15
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 edgarmueller/903916 to your computer and use it in GitHub Desktop.
Save edgarmueller/903916 to your computer and use it in GitHub Desktop.
(ns store-credit
(use [clojure.contrib.str-utils])
(:import (java.io BufferedReader FileReader)))
(defn sum-items [v i]
(let [h (first v)
r (rest v)
j (atom i)]
(if (empty? v)
[]
(concat (map #(vector [i (swap! j (fn [n] (inc n)))] (+ h %1)) r) (sum-items r (inc i))))))
(defn read-file [file-name]
(with-open [reader (BufferedReader. (FileReader. file-name))]
(let [lines (line-seq reader)
n (Integer/parseInt (first lines))]
(doseq [[xs i] (map vector (partition 3 (rest lines)) (range 1 (inc n)))]
(let [c (Integer/parseInt (first xs))
l (second xs)
ps (vec (re-split #"\s+" ((comp first rest rest) xs)))
s (sum-items (map #(Integer/parseInt %1) ps) 0)
idx (first (filter #(= (second %1) c) s))
pair (map inc (first idx))]
(println (str "Case #" i ":") (first pair) (second pair)))))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment