Ejemplo n.º 1
0
        protected override string?SolvePartTwo()
        {
            var p0 = new SoundProgram(Input, 0);
            var p1 = new SoundProgram(Input, 1);

            // Set the remote queues up
            p0.remote = p1.queue;
            p1.remote = p0.queue;

            bool ret0       = false;
            bool ret1       = false;
            bool deadlocked = false;

            do
            {
                ret0 = p0.Run();
                ret1 = p1.Run();

                // If deadlocked
                deadlocked = p0.IsDeadlocked() && p1.IsDeadlocked();
            } while (ret0 && ret1 && !deadlocked);

            return(p1.sendCount.ToString());
        }