require_relative 'square_brackets_compactor'

def compact_paranthesis(input_string)

  string_extract = input_string.reverse

  paranthesis_extract = [""]

  two_paranthesis = ""

  open_paran_index = nil

  offset_value = nil

  while string_extract.include?("(")

    open_paran_index = string_extract.index("(")

    test_extract = string_extract[0..open_paran_index].reverse

    two_paranthesis = test_extract[0..test_extract.index(")")]

    previous_value = paranthesis_extract[-1]

    if previous_value.length > two_paranthesis.length-(two_paranthesis.count("$@"))/2

      offset_value = previous_value

    end

    paranthesis_extract << two_paranthesis.sub("$@"*previous_value.length,previous_value)

    string_extract = string_extract.sub(two_paranthesis.reverse,"@$"*paranthesis_extract[-1].length)

  end

  return compact_square_brackets(string_extract.reverse)

end