A hotel offers two types of rooms: studio and apartment. Prices are in Bulgarian levs (BGN / lv).
Write a program that calculates the price of the whole stay for a studio and apartment. Prices depend on the month of the stay:
May and October | June and September | July and August |
---|---|---|
Studio – 50 BGN/per night | Studio – 75.20 BGN/per night | Studio – 76 BGN/per night |
Apartment – 65 BGN/per night | Apartment – 68.70 BGN/per night | Apartment – 77 BGN/per night |
The following discounts are also offered:
- For a studio, in case of more than 7 stays in May and October: 5% discount.
- For a studio, in case of more than 14 stays in May and October: 30% discount.
- For a studio, in case of more than 14 stays in June and September: 20% discount.
- For an apartment, in case of more than 14 stays, no limitation regarding the month: 10% discount.
The input data is read from the console and contains exactly two lines:
- The first line contains the month – May, June, July, August, September or October.
- The second line is the number of stays – integer within the range [0 … 200].
Print the following two lines on the console:
- On the first line: "Apartment: { price for the whole stay } lv."
- On the second line: "Studio: { price for the whole stay } lv."
The price for the whole stay must be formatted up to two symbols after the decimal point.
Input | Output | Comments |
---|---|---|
May 15 |
Apartment: 877.50 lv. Studio: 525.00 lv. |
In May, in case of more than 14 stays, the discount for a studio is 30% (50 - 15 = 35), and for the apartment is 10% (65 - 6.5 = 58.5). The whole stay in the apartment: 877.50 lv. The whole stay in the studio: 525.00 lv. |
Input | Output |
---|---|
June 14 |
Apartment: 961.80 lv. Studio: 1052.80 lv. |
August 20 |
Apartment: 1386.00 lv. Studio: 1520.00 lv. |
We will read the input data and do the calculations according to the provided price list and the discount rules, and finally print the result.
According to the task requirements we expect to read two lines of input data: the month in which the stay is planned (first line), and the number of stays (second line).
Let's process and store the input data in the appropriate parameters:
Now let's create and initialize the variables needed for the calculations:
When doing an additional analysis of the requirements, we understand that our main logic depends on what month is passed and what is the number of stays.
In general, there are different approaches and ways to apply the above conditions, but let's examine a basic switch-case
conditional statement, as in the individual case
blocks we will use if
and if-else
conditional statements.
Let's start with the first group of months: May and October. For these two months the price for stay is the same for both types of accommodation – in a studio or in an apartment. Therefore, the only thing that remains is to apply an internal condition regarding the number of stays and recalculate the relevant price (if needed).
To some extent, the logic and calculations will be identical for the following months.
After calculating the relevant prices and the total amount for the stay, now let's prepare the formatted result. Before that, we should store it in our output parameters – studioInfo
and apartmentInfo
.
In order to calculate the output parameters, we will use the decimal.Round(Decimal, Int32)
method. This method rounds the decimal number up to a specified number of characters after the decimal point. In our case, we will round the decimal number up to 2 digits after the decimal point.
Finally, what remains is to print the calculated results on the console.
Test your solution here: https://judge.softuni.org/Contests/Practice/Index/509#4.