Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- std::vector<int> singleElevatorSystem (int inputFloors[], int size, int currentFloor, string direction) {
- std::vector<int> High, Low;
- for (int i = 0; i < size; i++) {
- if (currentFloor < inputFloors[i]) {
- High.push_back (inputFloors[i]);
- } else if (currentFloor > inputFloors[i]) {
- Low.push_back (inputFloors[i]);
- }
- }
- std::sort (High.begin(), High.end());
- std::sort (Low.begin(), Low.end());
- if (direction.compare("UP") == 0) {
- High.insert(High.end(), Low.rbegin(), Low.rend());
- return High;
- } else if (direction.compare("DOWN") == 0) {
- std::reverse (Low.begin(), Low.end());
- Low.insert (Low.end(), High.begin(), High.end());
- return Low;
- }
- }
- int main () {
- int inputFloors[] = {5, 2, 9, 3, 8, 1};
- int currentFloor = 6;
- //string direction("UP");
- string direction("DOWN");
- std::vector<int> outputFloors = singleElevatorSystem (inputFloors, 6, currentFloor, direction);
- std::cout << "Elevator will stop at requested floors in sequence : ";
- for (int i = 0; i < 6; i++) {
- std::cout << outputFloors.at(i) << " ";
- }
- std::cin.get();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement