Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- class Car {
- protected:
- int pos;
- public:
- Car() {
- this->pos = 0;
- }
- void move(int direction) {
- this->pos += direction;
- }
- int get_position() {
- return this->pos;
- }
- };
- class Bus: public Car {
- int capacity;
- int psg_count;
- int *passengers;
- public:
- Bus(int capacity) {
- this->capacity = capacity;
- psg_count = 0;
- passengers = new int[capacity];
- }
- ~Bus() {
- delete[] passengers;
- }
- bool add_passenger(int destination) {
- if (capacity == psg_count) {
- return false;
- } else {
- this->passengers[psg_count] = destination;
- psg_count++;
- return true;
- }
- }
- void release() {
- for (int i = 0; i < this->capacity; i++) {
- if (this->pos == passengers[i]) {
- psg_count--;
- passengers[i] = 0;
- }
- }
- }
- int get_passenger_count() {
- return psg_count;
- }
- };
- int main() {
- string cmd;
- int cmd_count, capacity, temp;
- cin >> cmd_count >> capacity;
- Bus bussing(capacity);
- for (int i = 0; i < cmd_count; i++) {
- cin >> cmd;
- if (cmd == "MOVE") {
- cin >> temp;
- bussing.move(temp);
- } else if (cmd == "POSITION") {
- cout << bussing.get_position() << endl;
- } else if (cmd == "PASSENGER") {
- cin >> temp;
- if (bussing.add_passenger(temp)) {
- cout << "SUCCESS" << endl;
- } else {
- cout << ":(" << endl;
- }
- } else if (cmd == "RELEASE") {
- bussing.release();
- } else {
- cout << bussing.get_passenger_count() << endl;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement