2375. Квартира

 

Вы являетесь одним из разработчиков программного обеспечения для агентства недвижимости. Вам следует реализовать различные статистические функции для квартир, которые продает агентство. Каждая квартира состоит из различных типов комнат: спальня, ванная комната, кухня, балкон и другие.

Стоимость квартиры равна произведению уменьшенной общей площади и стоимости одного квадратного метра. Уменьшенной общей площадью считается общая площадь всех помещений кроме балконов плюс половина площадей всех балконов.

Вам будет предоставлена информация о площади каждой комнаты в квартире и стоимость одного квадратного метра. Необходимо рассчитать следующие значения для квартиры:

·        общую площадь комнат;

·        общую площадь всех спален;

·        стоимость квартиры.

 

Вход.  Первая строка содержит два целых числа n (1 ≤ n ≤ 10) и c (1 ≤ c ≤ 100000) – количество комнат в квартире и стоимость квадратного метра соответственно.

Каждая из следующих n строк содержит целое число ai (1 ≤ ai ≤ 100) и слово ti – площадь i-ой комнаты и ее тип соответственно.

Слово ti может содержать только одно из следующих значений: "bedroom", "bathroom", "kitchen", "balcony", "other".

 

Выход. Первая строка содержит одно целое число - общую площадь всех комнат квартиры. Вторая строка содержит одно целое число - общую площадь всех спален в квартире. Третья строка содержит одно действительное число - стоимость квартиры с точностью не больше 10-6.

Следующий рисунок отображает план квартиры, заданной в первом примере.

 

Пример входа

Пример выхода

6 75000

8 other

3 bathroom

2 bathroom

10 kitchen

16 bedroom

7 balcony

46

16

3187500.0

 

 

РЕШЕНИЕ

строки

 

Анализ алгоритма

Вычислим площадь всех спален BedRoom, всех балконов Balcony и всей квартиры Area. Пусть c – стоимость квадратного метра. Тогда общая стоимость квартиры равна

(AreaBalcony / 2.0) * c

 

Реализация алгоритма

Информацию о типе комнаты считываем в массив s.

 

char s[100];

 

Читаем входные данные. Вычисляем площадь всех спален и балконов.

 

scanf("%d %d",&n,&c);

BedRoom = Balcony = Area = 0;

for(i = 0; i < n; i++)

{

  scanf("%d %s",&a,s); 

  if (!strcmp(s,"bedroom")) BedRoom += a;

  if (!strcmp(s,"balcony")) Balcony += a;

  Area += a;

}

 

Вычисляем стоимость квартиры.

 

Price = (Area - Balcony / 2.0) * c;

 

Выводим требуемые данные.

 

printf("%d\n%d\n%.1lf\n",Area,BedRoom,Price);

 

Java реализация

 

import java.util.*;

//import java.io.*;

 

public class Main

{

  public static void main(String []args) //throws IOException

  {

    Scanner con = new Scanner(System.in);

    //Scanner con = new Scanner(new FileReader ("2375.in"));

    int n = con.nextInt();

    int c = con.nextInt();

    int BedRoom = 0, Balcony = 0, Area = 0;

    for(int i = 0; i < n; i++)

    {

      int a = con.nextInt();

      String s = con.next();

      if (s.equals("bedroom")) BedRoom += a;

      if (s.equals("balcony")) Balcony += a;

      Area += a;

    }

    double Price = (Area - Balcony / 2.0) * c;

    System.out.printf(Locale.US,"%d\n%d\n%.1f\n",Area,BedRoom,Price);

  }

}