SHARE
TWEET

Untitled

a guest Dec 20th, 2017 68 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. class Person
  4. {
  5.     public $name;
  6.     public $company;
  7.     public $car;
  8.     public $pokemon;
  9.     public $parents;
  10.     public $children;
  11.  
  12.     /**
  13.      * Person constructor.
  14.      * @param $company
  15.      * @param $car
  16.      * @param $pokemon
  17.      * @param $parents
  18.      * @param $children
  19.      */
  20.     public function __construct($name = '', $company = '', $car = '', $pokemon = '', $parents = '', $children = '')
  21.     {
  22.         $this->name = $name;
  23.         $this->company = $company;
  24.         $this->car = $car;
  25.         $this->pokemon = $pokemon;
  26.         $this->parents = $parents;
  27.         $this->children = $children;
  28.     }
  29.  
  30.     /**
  31.      * @return string
  32.      */
  33.     public function getName()
  34.     {
  35.         return $this->name;
  36.     }
  37.  
  38.     /**
  39.      * @return object
  40.      */
  41.     public function getCompany()
  42.     {
  43.         return $this->company;
  44.     }
  45.  
  46.     /**
  47.      * @return object
  48.      */
  49.     public function getCar()
  50.     {
  51.         return $this->car;
  52.     }
  53.  
  54.     /**
  55.      * @return object
  56.      */
  57.     public function getPokemon()
  58.     {
  59.         return $this->pokemon;
  60.     }
  61.  
  62.     /**
  63.      * @return object
  64.      */
  65.     public function getParents()
  66.     {
  67.         return $this->parents;
  68.     }
  69.  
  70.     /**
  71.      * @return string
  72.      */
  73.     public function getChildren()
  74.     {
  75.         return $this->children;
  76.     }
  77.  
  78.  
  79.  
  80.     /**
  81.      * @param string $name
  82.      */
  83.     public function setName(string $name)
  84.     {
  85.         $this->name = $name;
  86.     }
  87.  
  88.     /**
  89.      * @param Company $company
  90.      */
  91.     public function setCompany(Company $company)
  92.     {
  93.         $this->company = $company;
  94.     }
  95.  
  96.     /**
  97.      * @param Car $car
  98.      */
  99.     public function setCar(Car $car)
  100.     {
  101.         $this->car = $car;
  102.     }
  103.  
  104.     /**
  105.      * @param Pokemon $pokemon
  106.      */
  107.     public function setPokemon(Pokemon $pokemon)
  108.     {
  109.         $this->pokemon = $pokemon;
  110.     }
  111.  
  112.     /**
  113.      * @param Parents $parents
  114.      */
  115.     public function setParents(Parents $parents)
  116.     {
  117.         $this->parents = $parents;
  118.     }
  119.  
  120.     /**
  121.      * @param Children $children
  122.      */
  123.     public function setChildren(Children $children)
  124.     {
  125.         $this->children = $children;
  126.     }
  127.  
  128.  
  129.  
  130. }
  131.  
  132. class Company
  133. {
  134.     public $name;
  135.     public $department;
  136.     public $salary;
  137.  
  138.     /**
  139.      * Company constructor.
  140.      * @param $name
  141.      * @param $department
  142.      * @param $salary
  143.      */
  144.     public function __construct($name = '', $department = '', $salary = '')
  145.     {
  146.         $this->name = $name;
  147.         $this->department = $department;
  148.         $this->salary = $salary;
  149.     }
  150.  
  151.     /**
  152.      * @return string
  153.      */
  154.     public function getName(): string
  155.     {
  156.         return $this->name;
  157.     }
  158.  
  159.     /**
  160.      * @return string
  161.      */
  162.     public function getDepartment(): string
  163.     {
  164.         return $this->department;
  165.     }
  166.  
  167.     /**
  168.      * @return string
  169.      */
  170.     public function getSalary(): string
  171.     {
  172.         return $this->salary;
  173.     }
  174.  
  175.  
  176. }
  177.  
  178. class Pokemon
  179. {
  180.     public $name;
  181.     public $element;
  182.  
  183.     /**
  184.      * Pokemon constructor.
  185.      * @param $name
  186.      * @param $element
  187.      */
  188.     public function __construct($name = '', $element = '')
  189.     {
  190.         $this->name = $name;
  191.         $this->element = $element;
  192.     }
  193.  
  194.     /**
  195.      * @return string
  196.      */
  197.     public function getName(): string
  198.     {
  199.         return $this->name;
  200.     }
  201.  
  202.     /**
  203.      * @return string
  204.      */
  205.     public function getElement(): string
  206.     {
  207.         return $this->element;
  208.     }
  209.  
  210.  
  211. }
  212.  
  213. class Parents
  214. {
  215.     public $name;
  216.     public $birthday;
  217.  
  218.     /**
  219.      * Parents constructor.
  220.      * @param $name
  221.      * @param $birthday
  222.      */
  223.     public function __construct($name = '', $birthday = '')
  224.     {
  225.         $this->name = $name;
  226.         $this->birthday = $birthday;
  227.     }
  228.  
  229.     /**
  230.      * @return string
  231.      */
  232.     public function getName(): string
  233.     {
  234.         return $this->name;
  235.     }
  236.  
  237.     /**
  238.      * @return string
  239.      */
  240.     public function getBirthday(): string
  241.     {
  242.         return $this->birthday;
  243.     }
  244.  
  245.  
  246. }
  247.  
  248. class Children
  249. {
  250.     public $name;
  251.     public $birthday;
  252.  
  253.     /**
  254.      * Children constructor.
  255.      * @param $name
  256.      * @param $birthday
  257.      */
  258.     public function __construct($name = '', $birthday = '')
  259.     {
  260.         $this->name = $name;
  261.         $this->birthday = $birthday;
  262.     }
  263.  
  264.     /**
  265.      * @return string
  266.      */
  267.     public function getName(): string
  268.     {
  269.         return $this->name;
  270.     }
  271.  
  272.     /**
  273.      * @return string
  274.      */
  275.     public function getBirthday(): string
  276.     {
  277.         return $this->birthday;
  278.     }
  279.  
  280.  
  281. }
  282.  
  283. class Car
  284. {
  285.     public $model;
  286.     public $speed;
  287.  
  288.     /**
  289.      * Car constructor.
  290.      * @param $model
  291.      * @param $speed
  292.      */
  293.     public function __construct($model = '', $speed = '')
  294.     {
  295.         $this->model = $model;
  296.         $this->speed = $speed;
  297.     }
  298.  
  299.     /**
  300.      * @return string
  301.      */
  302.     public function getModel(): string
  303.     {
  304.         return $this->model;
  305.     }
  306.  
  307.     /**
  308.      * @return string
  309.      */
  310.     public function getSpeed(): string
  311.     {
  312.         return $this->speed;
  313.     }
  314.  
  315. }
  316.  
  317. $persons = [];
  318.  
  319. while (true) {
  320.     $inputLine = trim(fgets(STDIN));
  321.  
  322.     if ($inputLine == 'End') {
  323.         break;
  324.     }
  325.  
  326.     $inputLine = explode(' ', $inputLine);
  327.     $personName = $inputLine[0];
  328.     $class = $inputLine[1];
  329.  
  330.     if (!in_array($personName, $persons)) {
  331.         $person = new Person($personName);
  332.     }
  333.  
  334.     switch ($class) {
  335.         case 'pokemon':
  336.             $pokemonName = $inputLine[2];
  337.             $pokemonElement = $inputLine[3];
  338.             $pokemon = new Pokemon($pokemonName, $pokemonElement);
  339.             $person->setPokemon($pokemon);
  340.             break;
  341.         case 'parents':
  342.             $parentsName = $inputLine[2];
  343.             $parentBirthday = $inputLine[3];
  344.             $parents = new Parents($parentsName, $parentBirthday);
  345.             $person->setParents($parents);
  346.             break;
  347.         case 'company':
  348.             $companyName = $inputLine[2];
  349.             $companyDepartment = $inputLine[3];
  350.             $companySalary = $inputLine[4];
  351.             $company = new Company($companyName, $companyDepartment, $companySalary);
  352.             $person->setCompany($company);
  353.             break;
  354.         case 'children':
  355.             $childrenName = $inputLine[2];
  356.             $childrenBirthday = $inputLine[3];
  357.             $children = new Children($childrenName, $childrenBirthday);
  358.             $person->setChildren($children);
  359.             break;
  360.         case 'car':
  361.             $carModel = $inputLine[2];
  362.             $carSpeed = $inputLine[3];
  363.             $car = new Car($carModel, $carSpeed);
  364.             $person->setCar($car);
  365.             break;
  366.     }
  367.  
  368.     if (!in_array($personName, $persons)) {
  369.         $persons[$personName] = $person;
  370.     }
  371.  
  372. }
  373.  
  374. $personOutput = trim(fgets(STDIN));
  375. $person = $persons[$personOutput];
  376. var_dump($persons); exit;
  377.  
  378. echo $personOutput . PHP_EOL . 'Company: ' . PHP_EOL .
  379.                                 (is_object($person->getCompany()) ? $person->getCompany()->getName() : '') . PHP_EOL .
  380.                                 'Car: ' . PHP_EOL .
  381.                                 (is_object($person->getCar()) ? $person->getCar()->getModel() : '') . PHP_EOL .
  382.                                 'Pokemon: ' . PHP_EOL .
  383.                                  (is_object($person->getPokemon()) ? $person->getPokemon()->getName() : '') . PHP_EOL .
  384.                                 'Parents: ' . PHP_EOL .
  385.                                 (is_object($person->getParents()) ? $person->getParents()->getName() : '') . PHP_EOL .
  386.                                 'Children: ' . PHP_EOL;
  387.                                 (is_object($person->getChildren()) ? $person->getChildren()->getName() : '') . PHP_EOL;
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top