Xsufu

Олимпиадная_2

Mar 11th, 2022 (edited)
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 2.02 KB | None | 0 0
  1. import kotlin.math.abs
  2.  
  3. /**
  4. * Содержит информацию о здании
  5. *
  6. * @param x - координата здания по оси X
  7. * @param y - координата здания по оси Y
  8. * @param floors - количество этажей в здании
  9. */
  10. class Building(x_param: Int, y_param: Int, floors_param: Int) {
  11.   val x = x_param
  12.   val y = y_param
  13.   val floors = floors_param
  14.   val floorHeight = 3
  15.  
  16.   // Возвращает X координату здания
  17.   fun getParamX(): Int {
  18.     return x
  19.   }
  20.  
  21.   //Возвращает Y координату здания
  22.   fun getParamY(): Int {
  23.     return y
  24.   }
  25.  
  26.   // Возвращает высоту здания
  27.   fun getParamHeight(): Int {
  28.     return floors * floorHeight
  29.   }
  30.  
  31. }
  32.  
  33. /**
  34. * Нахождение расстнояния между площадками
  35. *
  36. *@param listOfBuildings - список экземпляров класса Buiding
  37. *
  38. *@return distance - необходимая длина кабеля
  39. */
  40. fun cabelLength(listOfBuildings: List<Building>): Int{  
  41.   var distance = 0
  42.  
  43.   // Расчёт длины кабеля
  44.   // Манхэтанское расстояние плюс удвоенная высота здания
  45.   for (i in 0..listOfBuildings.lastIndex) {
  46.       for (j in i+1..listOfBuildings.lastIndex){
  47.           distance += abs(listOfBuildings[i].getParamX() - listOfBuildings[i].getParamY())
  48.                      + abs(listOfBuildings[j].getParamX() - listOfBuildings[j].getParamY())
  49.                      + listOfBuildings[i].getParamHeight() + listOfBuildings[j].getParamHeight()
  50.       }
  51.   }
  52.  
  53.   return(distance)
  54. }
  55.  
  56. fun main(args: Array<String>) {
  57.   val vainera16 = Building(13, 2, 3)
  58.   val malisheva53 = Building(5, 14, 8)
  59.   val malisheva5 = Building(6, 8, 9)
  60.   val tatisheva69 = Building(3, 2, 1)
  61.   val listOfBuildings = listOf(vainera16, malisheva53, malisheva5, tatisheva69)
  62.  
  63.   println("Необходимая длина кабеля - ${cabelLength(listOfBuildings)} м")
  64. }
  65.  
  66.  
  67.  
  68.  
  69.  
Add Comment
Please, Sign In to add comment