protected override int Part1(string[] input) { var gates = new Gates(input); while (gates["a"].Output == null) { gates.EmulateAllGates(); } var signal = gates["a"].Output.Value; return(signal); }
protected override int Part2(string[] input) { var gates = new Gates(input); var signal1 = Part1(input); gates["b"].Input1 = signal1.ToString(); gates.ResetAllGates(); while (gates["a"].Output == null) { gates.EmulateAllGates(); } var signal2 = gates["a"].Output.Value; return(signal2); }