From 11d7e62232a8eebd1241f77b8f0d6f6a9548f01b Mon Sep 17 00:00:00 2001 From: josch Date: Thu, 11 Apr 2013 09:59:01 +0200 Subject: [PATCH] read edges from stdin instead of argv --- cycles_functional.ml | 14 ++++++++------ cycles_iter.ml | 14 ++++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/cycles_functional.ml b/cycles_functional.ml index 83d7016..2181c94 100644 --- a/cycles_functional.ml +++ b/cycles_functional.ml @@ -137,8 +137,8 @@ let find_all_cycles_johnson g = List.rev result ;; -if Array.length Sys.argv < 3 then begin - Printf.printf "usage: %s num_vertices [v1,v2...]\n" Sys.argv.(0); +if Array.length Sys.argv != 2 then begin + Printf.printf "usage: echo \"v1 v2\nv1 v3\n...\" | %s num_vertices\n" Sys.argv.(0); exit 1; end; @@ -147,10 +147,12 @@ let g = G.create ~size:v () in let a = Array.init v G.V.create in -for i = 2 to Array.length Sys.argv - 1 do - let v1, v2 = String.split Sys.argv.(i) "," in - G.add_edge g a.(int_of_string v1) a.(int_of_string v2); -done; +try + while true do + let v1, v2 = String.split (read_line ()) " " in + G.add_edge g a.(int_of_string v1) a.(int_of_string v2); + done; +with End_of_file -> (); let ll = find_all_cycles_johnson g in List.iter (fun path -> diff --git a/cycles_iter.ml b/cycles_iter.ml index f0472cb..c5f6160 100644 --- a/cycles_iter.ml +++ b/cycles_iter.ml @@ -130,8 +130,8 @@ let find_all_cycles_johnson g = List.rev !result ;; -if Array.length Sys.argv < 3 then begin - Printf.printf "usage: %s num_vertices [v1,v2...]\n" Sys.argv.(0); +if Array.length Sys.argv != 2 then begin + Printf.printf "usage: echo \"v1 v2\nv1 v3\n...\" | %s num_vertices\n" Sys.argv.(0); exit 1; end; @@ -140,10 +140,12 @@ let g = G.create ~size:v () in let a = Array.init v G.V.create in -for i = 2 to Array.length Sys.argv - 1 do - let v1, v2 = String.split Sys.argv.(i) "," in - G.add_edge g a.(int_of_string v1) a.(int_of_string v2); -done; +try + while true do + let v1, v2 = String.split (read_line ()) " " in + G.add_edge g a.(int_of_string v1) a.(int_of_string v2); + done; +with End_of_file -> (); let ll = find_all_cycles_johnson g in List.iter (fun path ->