public override string Part1(string input, object?args) { var rq = new List <long>(); var sq = new List <long>(); var p0 = new AssemblyProgram(0, ref rq, ref sq, input); p0.RunProgram(true); return(p0.LastFrequencySent.ToString()); }
public override string Part1(string input) { List <long> reQ = null; List <long> seQ = null; var m = new AssemblyProgram(1, ref reQ, ref seQ, input); m.RunProgram(false); return(m.MulInvoked.ToString()); }
public override string Part2(string input) { List <long> reQ = null; List <long> seQ = null; var m = new AssemblyProgram(1, ref reQ, ref seQ, input); m.Registers.Add("a", 1); m.RunProgram(false); return(m.Registers["h"].ToString()); ; }
public override string Part2(string input, object?args) { var q0 = new List <long>(); var q1 = new List <long>(); var p0 = new AssemblyProgram(0, ref q0, ref q1, input); var p1 = new AssemblyProgram(1, ref q1, ref q0, input); do { p0.RunProgram(false); p1.RunProgram(false); } while (p0.SentMsgToQ || p1.SentMsgToQ); return(p1.MessagesSent.ToString()); }