static void Main(string[] args) { string[] inputs; inputs = Console.ReadLine().Split(' '); int nbFloors = int.Parse(inputs[0]); // number of floors int width = int.Parse(inputs[1]); // width of the area int nbRounds = int.Parse(inputs[2]); // maximum number of rounds int exitFloor = int.Parse(inputs[3]); // floor on which the exit is found int exitPos = int.Parse(inputs[4]); // position of the exit on its floor int nbTotalClones = int.Parse(inputs[5]); // number of generated clones int nbAdditionalElevators = int.Parse(inputs[6]); // number of additional elevators that you can build Game game = new Game(nbFloors, width, nbRounds, nbTotalClones, nbAdditionalElevators); game.SetExit(exitFloor, exitPos); int nbElevators = int.Parse(inputs[7]); // number of elevators for (int i = 0; i < nbElevators; i++) { inputs = Console.ReadLine().Split(' '); int elevatorFloor = int.Parse(inputs[0]); // floor on which this elevator is found int elevatorPos = int.Parse(inputs[1]); // position of the elevator on its floor game.AddElevator(elevatorFloor, elevatorPos, true); } // game loop while (true) { inputs = Console.ReadLine().Split(' '); int cloneFloor = int.Parse(inputs[0]); // floor of the leading clone int clonePos = int.Parse(inputs[1]); // position of the leading clone on its floor string direction = inputs[2]; // direction of the leading clone: LEFT or RIGHT // Write an action using Console.WriteLine() // To debug: Console.Error.WriteLine("Debug messages..."); Console.WriteLine(game.GetMove(cloneFloor, clonePos, direction)); // action: WAIT or BLOCK } }