Bläddra i källkod

Start day 5 part 1

AbdoFizzy 6 månader sedan
förälder
incheckning
e5432fd8ed
2 ändrade filer med 24 tillägg och 0 borttagningar
  1. 3 0
      5/dune
  2. 21 0
      5/solve_1.ml

+ 3 - 0
5/dune

@@ -0,0 +1,3 @@
+(executables
+ (names  solve_1 solve_2)
+ (libraries base stdio str))

+ 21 - 0
5/solve_1.ml

@@ -0,0 +1,21 @@
+open Stdio
+open Str
+
+let read_input =
+  let rec aux rules updates= 
+    let line = In_channel.input_line In_channel.stdin in
+    match line with 
+    | None -> rules, updates
+    | Some x -> if (Str.string_match (regexp {|[0-9]+|[0-9]+|}) x 0) then
+                  let z = (List.map int_of_string (Str.split (regexp {|||}) x)) in
+                  aux ((List.nth z 0, List.nth z 1)::rules) updates else 
+                (if (Str.string_match (regexp {|[0-9]+\|,|}) x 0) then 
+                  aux rules ((List.map int_of_string (Str.split (regexp {|,|}) x))::updates) else aux rules updates)
+  in
+  aux [] []
+;;
+
+let rules = (fst read_input)
+let updates = (snd read_input)
+
+let () = List.iter (fun x -> printf "(%d, %d)\n" (fst x) (snd x)) rules