Input Format
The input is read by the provided locked code template.
In the first line, there is a single integer  denoting the number of rooms booked for today.
After that  lines follow. Each of these lines begins with a room_type which is either standard or apartment, and is followed by the number of bedrooms and the number of bathrooms in this room.
Constraints
  • There is at least  and at most  bedrooms in a room
  • There is at least  and at most  bathrooms in a room
Output Format
The output is produced by the provided and locked code template. It calculates the total profit by iterating through the vector of all rooms read from the input.

hackerrank hotel prices problem solution in c++ programming

Hotel Prices problem solution in c++ programming | HackerRank


#include <iostream>
#include <vector>

using namespace std;

class HotelRoom 
{
    public:

        HotelRoom(int bedrooms, int bathrooms)
        : bedrooms_(bedrooms), bathrooms_(bathrooms) 
        {

        }

        virtual int get_price() 
        {
                return ((50 * bedrooms_) + (100 * bathrooms_));
        }

    private:

        int bedrooms_;
        int bathrooms_;
};

class HotelApartment : public HotelRoom {
public:
    HotelApartment(int bedrooms, int bathrooms) 
    : HotelRoom(bedrooms, bathrooms) {}

    int get_price() {
        return HotelRoom::get_price() + 100;
    }
};

int main() {
    int n;
    cin >> n;
    vector<HotelRoom*> rooms;
    for (int i = 0; i < n; ++i) {
        string room_type;
        int bedrooms;
        int bathrooms;
        cin >> room_type >> bedrooms >> bathrooms;
        if (room_type == "standard") {
            rooms.push_back(new HotelRoom(bedrooms, bathrooms));
        } else {
            rooms.push_back(new HotelApartment(bedrooms, bathrooms));
        }
    }

    int total_profit = 0;
    for (auto room : rooms) {
        total_profit += room->get_price();
    }
    cout << total_profit << endl;

    for (auto room : rooms) {
        delete room;
    }
    rooms.clear();

    return 0;
}