Primaxm

Untitled

Oct 7th, 2018
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.28 KB | None | 0 0
  1. <?php
  2. $number = intval(readline());
  3.  
  4. $cars = [];
  5.  
  6. for ($i = 0; $i < $number; $i++) {
  7. $in = explode(" ", readline());
  8. $model = $in[0];
  9. $engineSpeed = intval($in[1]);
  10. $enginePower = $in[2];
  11. $cargoWeight = intval($in[3]);
  12. $cargoType = $in[4];
  13. $tire1Pressure = floatval($in[5]);
  14. $tire1Age = intval($in[6]);
  15. $tire2Pressure = floatval($in[7]);
  16. $tire2Age = intval($in[8]);
  17. $tire3Pressure = floatval($in[9]);
  18. $tire3Age = intval($in[10]);
  19. $tire4Pressure = floatval($in[11]);
  20. $tire4Age = intval($in[12]);
  21.  
  22. $engine = new Engine($engineSpeed, $enginePower);
  23. $cargo = new Cargo($cargoWeight, $cargoType);
  24. $tires = new Tire($tire1Pressure, $tire1Age, $tire2Pressure, $tire2Age,
  25. $tire3Pressure, $tire3Age, $tire4Pressure, $tire4Age);
  26. $car = new Car($model, $engine, $cargo, $tires);
  27. $cars[$model] = $car;
  28. }
  29.  
  30. $commnad = readline();
  31.  
  32. if ($commnad === "fragile") {
  33. fragile($cars);
  34. } elseif ($commnad === "flamable") {
  35. flamable($cars);
  36. }
  37.  
  38. function fragile($cars) {
  39. // all cars whose Cargo Type is “fragile” with a tire whose pressure is < 1
  40. foreach ($cars as $carType => $CarObj) {
  41. if ($CarObj->getCargo()->getCargoType() === "fragile" && ($CarObj->getTires()->getTire1Pressure() < 1 ||
  42. $CarObj->getTires()->getTire2Pressure() < 1 || $CarObj->getTires()->getTire3Pressure() < 1 ||
  43. $CarObj->getTires()->getTire4Pressure() < 1)) {
  44. echo $carType . PHP_EOL;
  45. }
  46. }
  47. }
  48.  
  49. function flamable($cars) {
  50. //print all cars whose Cargo Type is “flamable” and have Engine Power > 250
  51. foreach ($cars as $carType => $CarObj) {
  52. if ($CarObj->getCargo()->getCargoType() === "flamable" && $CarObj->getEngine()->getEnginePower() > 250) {
  53. echo $carType . PHP_EOL;
  54. }
  55. }
  56. }
  57.  
  58.  
  59. class Car
  60. {
  61. private $model;
  62. private $engine;
  63. private $cargo;
  64. private $tires;
  65.  
  66. /**
  67. * Car constructor.
  68. * @param $model
  69. * @param $engine
  70. * @param $cargo
  71. * @param $tires
  72. */
  73. public function __construct(string $model,Engine $engine,Cargo $cargo,Tire $tires)
  74. {
  75. $this->model = $model;
  76. $this->engine = $engine;
  77. $this->cargo = $cargo;
  78. $this->tires = $tires;
  79. }
  80.  
  81. /**
  82. * @return string
  83. */
  84. public function getModel(): string
  85. {
  86. return $this->model;
  87. }
  88.  
  89. /**
  90. * @return Engine
  91. */
  92. public function getEngine(): Engine
  93. {
  94. return $this->engine;
  95. }
  96.  
  97. /**
  98. * @return Cargo
  99. */
  100. public function getCargo(): Cargo
  101. {
  102. return $this->cargo;
  103. }
  104.  
  105. /**
  106. * @return Tire
  107. */
  108. public function getTires(): Tire
  109. {
  110. return $this->tires;
  111. }
  112.  
  113. }
  114.  
  115. class Engine
  116. {
  117. private $engineSpeed;
  118. private $enginePower;
  119.  
  120. /**
  121. * Engine constructor.
  122. * @param $engineSpeed
  123. * @param $enginePower
  124. */
  125. public function __construct($engineSpeed, $enginePower)
  126. {
  127. $this->engineSpeed = $engineSpeed;
  128. $this->enginePower = $enginePower;
  129. }
  130.  
  131. /**
  132. * @return mixed
  133. */
  134. public function getEnginePower()
  135. {
  136. return $this->enginePower;
  137. }
  138.  
  139. }
  140.  
  141. class Cargo
  142. {
  143. private $cargoWeight;
  144. private $cargoType;
  145.  
  146. /**
  147. * Cargo constructor.
  148. * @param $cargoWeight
  149. * @param $cargoType
  150. */
  151. public function __construct($cargoWeight, $cargoType)
  152. {
  153. $this->cargoWeight = $cargoWeight;
  154. $this->cargoType = $cargoType;
  155. }
  156.  
  157. /**
  158. * @return mixed
  159. */
  160. public function getCargoType()
  161. {
  162. return $this->cargoType;
  163. }
  164.  
  165. }
  166.  
  167. class Tire
  168. {
  169. private $tire1Pressure;
  170. private $tire1Age;
  171. private $tire2Pressure;
  172. private $tire2Age;
  173. private $tire3Pressure;
  174. private $tire3Age;
  175. private $tire4Pressure;
  176. private $tire4Age;
  177.  
  178. /**
  179. * Tire constructor.
  180. * @param $tire1Pressure
  181. * @param $tire1Age
  182. * @param $tire2Pressure
  183. * @param $tire2Age
  184. * @param $tire3Pressure
  185. * @param $tire3Age
  186. * @param $tire4Pressure
  187. * @param $tire4Age
  188. */
  189. public function __construct(
  190. $tire1Pressure,
  191. $tire1Age,
  192. $tire2Pressure,
  193. $tire2Age,
  194. $tire3Pressure,
  195. $tire3Age,
  196. $tire4Pressure,
  197. $tire4Age
  198. ) {
  199. $this->tire1Pressure = $tire1Pressure;
  200. $this->tire1Age = $tire1Age;
  201. $this->tire2Pressure = $tire2Pressure;
  202. $this->tire2Age = $tire2Age;
  203. $this->tire3Pressure = $tire3Pressure;
  204. $this->tire3Age = $tire3Age;
  205. $this->tire4Pressure = $tire4Pressure;
  206. $this->tire4Age = $tire4Age;
  207. }
  208.  
  209. /**
  210. * @return mixed
  211. */
  212. public function getTire1Pressure()
  213. {
  214. return $this->tire1Pressure;
  215. }
  216.  
  217. /**
  218. * @return mixed
  219. */
  220. public function getTire2Pressure()
  221. {
  222. return $this->tire2Pressure;
  223. }
  224.  
  225. /**
  226. * @return mixed
  227. */
  228. public function getTire3Pressure()
  229. {
  230. return $this->tire3Pressure;
  231. }
  232.  
  233. /**
  234. * @return mixed
  235. */
  236. public function getTire4Pressure()
  237. {
  238. return $this->tire4Pressure;
  239. }
  240.  
  241. }
Advertisement
Add Comment
Please, Sign In to add comment