emodev

ani

Mar 12th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.99 KB | None | 0 0
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: emotu
  5.  * Date: 012 12.3.2019 г.
  6.  * Time: 10:59
  7.  */
  8.  
  9. $array = explode(" ", readline());
  10.  
  11. while (true) {
  12.     $line = readline();
  13.     if ($line == "END"){
  14.         break;
  15.     }
  16.     $args = explode(" ", $line);
  17.     $cmd = $args[0];
  18.     if ($cmd == "Insert") {
  19.         $place = $args[1];
  20.         $paintingNumber = $args[2];
  21.         $array = insert($array, $place, $paintingNumber);
  22.     } elseif ($cmd == "Switch") {
  23.         $number1 = $args[1];
  24.         $number2 = $args[2];
  25.         $array = switchPlaces($array, $number1, $number2);
  26.     } elseif ($cmd == "Hide") {
  27.         $paintingNumberToHide = $args[1];
  28.         $array = hide($array, $paintingNumberToHide);
  29.     } elseif ($cmd == "Reverse") {
  30.         $array = reverse($array);
  31.     } elseif ($cmd == "Change") {
  32.         $paintingNumberToChange = $args[1];
  33.         $newNumber = $args[2];
  34.         $array = change($array, $paintingNumberToChange, $newNumber);
  35.     }
  36.  
  37. }
  38.  
  39. foreach ($array as $num){
  40.     echo $num." ";
  41. }
  42.  
  43. function insert($array, $place, $paintingNumber)
  44. {
  45.     $copy = [];
  46.     if ($place < count($array) - 1) {
  47.         for ($i = 0; $i <= $place; $i++) {
  48.             $copy[] = $array[$i];
  49.         }
  50.         $copy[$place + 1] = $paintingNumber;
  51.         for ($i = $place + 1; $i < count($array); $i++) {
  52.             $copy[] = $array[$i];
  53.         }
  54.         return $copy;
  55.     }
  56.     return $array;
  57. }
  58.  
  59. function switchPlaces($array, $number1, $number2)
  60. {
  61.     $num1Exists = false;
  62.     $num2Exists = false;
  63.     $num1Index = 0;
  64.     $num2Index = 0;
  65.     for ($i = 0; $i < count($array); $i++) {
  66.         if ($array[$i] === $number1) {
  67.             $num1Exists = true;
  68.             $num1Index = $i;
  69.         }
  70.         if ($array[$i] === $number2) {
  71.             $num2Exists = true;
  72.             $num2Index = $i;
  73.         }
  74.     }
  75.  
  76.     if ($num1Exists && $num2Exists) {
  77.         $temp = $array[$num1Index];
  78.         $array[$num1Index] = $array[$num2Index];
  79.         $array[$num2Index] = $temp;
  80.     }
  81.     return $array;
  82. }
  83.  
  84. function hide($array, $paintingNumber)
  85. {
  86.     $indexOfNumberToRemove = -1;
  87.     for ($i = 0; $i < count($array); $i++) {
  88.         if ($array[$i] == $paintingNumber) {
  89.             $indexOfNumberToRemove = $i;
  90.         }
  91.     }
  92.  
  93.     if ($indexOfNumberToRemove != -1) {
  94.         $copy = [];
  95.         for ($i = 0; $i < $indexOfNumberToRemove; $i++) {
  96.             $copy[] = $array[$i];
  97.         }
  98.         for ($i = $indexOfNumberToRemove + 1; $i < count($array); $i++) {
  99.             $copy[] = $array[$i];
  100.         }
  101.         return $copy;
  102.     }
  103.     return $array;
  104.  
  105. }
  106.  
  107.  
  108. function reverse($array)
  109. {
  110.     $copy = [];
  111.     for ($i = count($array) - 1; $i >= 0; $i--) {
  112.         $copy[] = $array[$i];
  113.     }
  114.     return $copy;
  115. }
  116.  
  117. function change($array, $paintingNumber, $newNumber)
  118. {
  119.     for ($i = 0; $i < count($array); $i++) {
  120.         if ($array[$i] == $paintingNumber) {
  121.             $array[$i] = $newNumber;
  122.             break;
  123.         }
  124.     }
  125.     return $array;
  126. }
Add Comment
Please, Sign In to add comment