Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.64 KB | None | 0 0
  1. <?php
  2.  
  3. $arr = array_map('intval', explode(' ', readline()));
  4.  
  5. $command = readline();
  6.  
  7. $c = explode(' ', $command);
  8.  
  9. while ($command != 'end')
  10. {
  11. switch ($c[0])
  12. {
  13. case 'exchange': exchange($arr, $c); break;
  14. case 'max':
  15. switch ($c[1])
  16. {
  17. case 'even': maxEven($arr); break;
  18. case 'odd': maxOdd($arr); break;
  19. }
  20. break;
  21. case 'min':
  22. switch ($c[1])
  23. {
  24. case 'even': minEven($arr); break;
  25. case 'odd': minOdd($arr); break;
  26. }
  27. break;
  28. case 'first':
  29. switch ($c[2])
  30. {
  31. case 'even': firstEven($arr, $c); break;
  32. case 'odd': firstOdd($arr, $c); break;
  33. }
  34. break;
  35. case 'last':
  36. switch ($c[2])
  37. {
  38. case 'even': lastEven($arr, $c); break;
  39. case 'odd': lastOdd($arr, $c); break;
  40. }
  41. break;
  42. }
  43.  
  44. $command = readline();
  45.  
  46. $c = explode(' ', $command);
  47.  
  48. }
  49.  
  50. echo '[';
  51. echo implode(', ',$arr);
  52. echo ']';
  53.  
  54. function firstEven($arr, $c)
  55. {
  56. $evens = [];
  57. $firstEven = [];
  58.  
  59. if ($c[1] > count($arr))
  60. {
  61. echo 'Invalid count'.PHP_EOL;
  62. }
  63. else
  64. {
  65. for ($i = 0; $i < count($arr); $i++)
  66. {
  67. if ($arr[$i] % 2 == 0)
  68. {
  69. $evens[] = $arr[$i];
  70. }
  71. }
  72. if ($c[1] >= count($evens))
  73. {
  74. for ($j = 0; $j < count($evens); $j++)
  75. {
  76. $firstEven[] = $evens[$j];
  77. }
  78. }
  79. else
  80. {
  81. for ($k = 0; $k < $c[1]; $k++)
  82. {
  83. $firstEven[] = $evens[$k];
  84. }
  85. }
  86.  
  87. echo '[';
  88. echo implode(', ', $firstEven);
  89. echo ']'.PHP_EOL;
  90. }
  91. }
  92.  
  93. function firstOdd($arr, $c)
  94. {
  95. $odds = [];
  96. $firstOdd = [];
  97.  
  98. if ($c[1] > count($arr))
  99. {
  100. echo 'Invalid count'.PHP_EOL;
  101. }
  102. else
  103. {
  104. for ($i = 0; $i < count($arr); $i++)
  105. {
  106. if ($arr[$i] % 2 == 1)
  107. {
  108. $odds[] = $arr[$i];
  109. }
  110. }
  111. if ($c[1] >= count($odds))
  112. {
  113. for ($j = 0; $j < count($odds); $j++)
  114. {
  115. $firstOdd[] = $odds[$j];
  116. }
  117. }
  118. else
  119. {
  120. for ($k = 0; $k < $c[1]; $k++)
  121. {
  122. $firstOdd[] = $odds[$k];
  123. }
  124. }
  125.  
  126. echo '[';
  127. echo implode(', ', $firstOdd);
  128. echo ']'.PHP_EOL;
  129. }
  130. }
  131.  
  132. function lastEven($arr, $c)
  133. {
  134. $evens = [];
  135. $lastEven = [];
  136. $lastEven1 = [];
  137. $lastEven2 = [];
  138.  
  139. if ($c[1] > count($arr))
  140. {
  141. echo 'Invalid count'.PHP_EOL;
  142. }
  143. else
  144. {
  145. for ($i = 0; $i < count($arr); $i++)
  146. {
  147. if ($arr[$i] % 2 == 0)
  148. {
  149. $evens[] = $arr[$i];
  150. }
  151. }
  152. if ($c[1] >= count($evens))
  153. {
  154. for ($j = 0; $j < count($evens); $j++)
  155. {
  156. $lastEven[] = $evens[$j];
  157. }
  158.  
  159. echo '[';
  160. echo implode(', ', $lastEven);
  161. echo ']'.PHP_EOL;
  162. }
  163. else
  164. {
  165. $lastEven1 = array_reverse($evens);
  166.  
  167. for ($k = 0; $k < $c[1]; $k++)
  168. {
  169. $lastEven2[] = $lastEven1[$k];
  170. }
  171.  
  172. echo '[';
  173. echo implode(', ', array_reverse($lastEven2));
  174. echo ']'.PHP_EOL;
  175. }
  176. }
  177. }
  178.  
  179. function lastOdd($arr, $c)
  180. {
  181. $odds = [];
  182. $lastOdd = [];
  183. $lastOdd1 = [];
  184. $lastOdd2 = [];
  185.  
  186. if ($c[1] > count($arr))
  187. {
  188. echo 'Invalid count'.PHP_EOL;
  189. }
  190. else
  191. {
  192. for ($i = 0; $i < count($arr); $i++)
  193. {
  194. if ($arr[$i] % 2 == 1)
  195. {
  196. $odds[] = $arr[$i];
  197. }
  198. }
  199. if ($c[1] >= count($odds))
  200. {
  201. for ($j = 0; $j < count($odds); $j++)
  202. {
  203. $lastOdd[] = $odds[$j];
  204. }
  205.  
  206. echo '[';
  207. echo implode(', ', $lastOdd);
  208. echo ']'.PHP_EOL;
  209. }
  210. else
  211. {
  212. $lastOdd1 = array_reverse($odds);
  213.  
  214. for ($k = 0; $k < $c[1]; $k++)
  215. {
  216. $lastOdd2[] = $lastOdd1[$k];
  217. }
  218.  
  219. echo '[';
  220. echo implode(', ', array_reverse($lastOdd2));
  221. echo ']'.PHP_EOL;
  222. }
  223. }
  224. }
  225.  
  226. function maxOdd($arr)
  227. {
  228. $maxOdd = 0;
  229. $index = -1;
  230.  
  231. for ($i = 0; $i < count($arr);$i++)
  232. {
  233. if ($arr[$i] % 2 == 1)
  234. {
  235. if ($arr[$i] >= $maxOdd)
  236. {
  237. $maxOdd = $arr[$i];
  238. $index = $i;
  239. }
  240. }
  241. }
  242.  
  243. if ($index == -1)
  244. {
  245. echo 'No matches'.PHP_EOL;
  246. }
  247. else
  248. {
  249. echo $index.PHP_EOL;
  250. }
  251. }
  252.  
  253. function minOdd($arr)
  254. {
  255. $minOdd = 9999;
  256. $index = -1;
  257.  
  258. for ($i = 0; $i < count($arr);$i++)
  259. {
  260. if ($arr[$i] % 2 == 1)
  261. {
  262. if ($arr[$i] <= $minOdd)
  263. {
  264. $minOdd = $arr[$i];
  265. $index = $i;
  266. }
  267. }
  268. }
  269.  
  270. if ($index == -1)
  271. {
  272. echo 'No matches'.PHP_EOL;
  273. }
  274. else
  275. {
  276. echo $index.PHP_EOL;
  277. }
  278. }
  279.  
  280. function maxEven($arr)
  281. {
  282. $maxEven = 0;
  283. $index = -1;
  284.  
  285. for ($i = 0; $i < count($arr);$i++)
  286. {
  287. if ($arr[$i] % 2 == 0)
  288. {
  289. if ($arr[$i] >= $maxEven)
  290. {
  291. $maxEven = $arr[$i];
  292. $index = $i;
  293. }
  294. }
  295. }
  296.  
  297. if ($index == -1)
  298. {
  299. echo 'No matches'.PHP_EOL;
  300. }
  301. else
  302. {
  303. echo $index.PHP_EOL;
  304. }
  305. }
  306.  
  307. function minEven($arr)
  308. {
  309. $minEven = 9999;
  310. $index = -1;
  311.  
  312. for ($i = 0; $i < count($arr);$i++)
  313. {
  314. if ($arr[$i] % 2 == 0)
  315. {
  316. if ($arr[$i] <= $minEven)
  317. {
  318. $minEven = $arr[$i];
  319. $index = $i;
  320. }
  321. }
  322. }
  323.  
  324. if ($index == -1)
  325. {
  326. echo 'No matches'.PHP_EOL;
  327. }
  328. else
  329. {
  330. echo $index.PHP_EOL;
  331. }
  332. }
  333.  
  334. function exchange(&$arr, $c)
  335. {
  336. if ($c[1] >= count($arr))
  337. {
  338. echo 'Invalid index'.PHP_EOL;
  339. }
  340. else
  341. {
  342. for ($i = 0; $i <= $c[1]; $i++)
  343. {
  344. $index = array_shift($arr);
  345. $arr[] = $index;
  346. }
  347. }
  348. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement