diff --git a/lib/possible_bipartition.rb b/lib/possible_bipartition.rb index 69507f1..dd225b7 100644 --- a/lib/possible_bipartition.rb +++ b/lib/possible_bipartition.rb @@ -1,4 +1,26 @@ - def possible_bipartition(dislikes) - raise NotImplementedError, "possible_bipartition isn't implemented yet" + doggos = [] + + dislikes.length.times do |i| + if doggos[i].nil? + doggos[i] = 1 + end + + return false if helper(i, doggos, dislikes) == false + end + + return true +end + +def helper(i, doggos, dislikes) + dislikes[i].each do |neighbor| + if doggos[neighbor].nil? + doggos[neighbor] = -doggos[i] + return false if helper(neighbor, doggos, dislikes) == false + elsif doggos[neighbor] == doggos[i] + return false + end + end + + return true end