Професионална програма
Loading...
+ Нов въпрос
DeyanAltanov avatar DeyanAltanov 6 Точки

Pokemon Donot Go

Условие(Задача 9) -> https://softuni.bg/trainings/resources/officedocument/40842/exercise-php-fundamentals-may-2019/2344

Решение(80/100) -> https://pastebin.com/cHWTdJ5b

Два теста гърмят.

Тагове:
0
PHP Fundamentals
willystyle avatar willystyle 2466 Точки

Малко съм ти преправил кода, основната грешка беше, когато индекса е по-голям от края не променяше стойностите по масива:

<?php
$arr = array_map('intval', explode(' ', readline()));
$index = intval(readline());
$sum = 0;
while (count($arr) > 0) {
    if ($index > count($arr) - 1) {
        $value = $arr[count($arr) - 1];
        array_splice($arr, count($arr) - 1, 1, $arr[0]);
    } elseif ($index < 0) {
        $value = $arr[0];
        array_splice($arr, 0, 1, $arr[count($arr) - 1]);
    } else {
        $value = $arr[$index];
        array_splice($arr, $index, 1);
    }
    $sum += $value;
    for ($i = 0; $i < count($arr); $i++) {
        if ($arr[$i] <= $value) {
            $arr[$i] += $value;
        } else {
            $arr[$i] -= $value;
        }
    }
    if (count($arr) > 0) {
        $index = intval(readline());
    }
}
echo $sum;

 

1
DeyanAltanov avatar DeyanAltanov 6 Точки

Много благодаря!

Доста по-малко писане така, а и кода изглежда доста по-подреден.

2