#include #include int main() { int CurrentFloor = 8; int TargetFloor = 2; int RequestsOverTime[15] = {2,6,1,8,10,5,3,2,10,7,8,4,5,1,7}; int PendingFloors[10] = {}; bool reachedAllPendingFloors = false; bool isDone = false; for(int Timestep = 0; Timestep < 15 && !isDone; Timestep++) { printf("I'm currently at floor %d\n", CurrentFloor); // TODO: Take the next Request from RequestOverTime and put it into the PendingFloors array // at the index of the timestep if(CurrentFloor < TargetFloor) { CurrentFloor++; } else { CurrentFloor--; } bool foundFloor = false; if(!reachedAllPendingFloors && PendingFloors[CurrentFloor]) { printf("I waited in floor %d.\n", CurrentFloor); PendingFloors[CurrentFloor] = false; foundFloor = true; } reachedAllPendingFloors = true; for(int i = 0; i < 15; i++) { if(PendingFloors[i] != false) { reachedAllPendingFloors = false; break; } } if(CurrentFloor == TargetFloor) { if(!foundFloor) printf("I waited in floor %d.\n", CurrentFloor); if(!reachedAllPendingFloors) { for(int i = 0; i < 15; i++) { if(PendingFloors[i] != false) { TargetFloor = PendingFloors[i]; PendingFloors[i] = false; break; } } } else { isDone = true; } } } }