Чёт никто не решает. Это же интересно. Не пиксел искать в тысячный раз.
Если чисто по задаче, то вот:
[spoiler]SUB(multi_3_max) //=============================================================
$result = 1
$len = ARRSIZE($list_of_ints)
IF($len = 0)
$result = 0
ELSE
IF($len < 4)
FOR($i=0, $i < $len)
$result = $result * $list_of_ints[$i]
END_CYC
ELSE
FOR($i=0, $i < $len)
$num = INT($list_of_ints[$i])
IF($num > 0)
ARRPUSH($pos, $num)
FOR($p=(ARRSIZE($pos)-2), $p > -1, -1)
IF($pos[$p+1] > $pos[$p])
$temp = $pos[$p+1]
$pos[$p+1] = $pos[$p]
$pos[$p] = $temp
ELSE
$p = -1
END_IF
END_CYC
IF(ARRSIZE($pos) > 3)
$pass = ARRPOP($pos)
END_IF
ELSE
ARRPUSH($neg, $num)
FOR($n=(ARRSIZE($neg)-2), $n > -1, -1)
IF($neg[$n+1] < $neg[$n])
$temp = $neg[$n+1]
$neg[$n+1] = $neg[$n]
$neg[$n] = $temp
ELSE
$n = -1
END_IF
END_CYC
END_IF
END_CYC
SWITCH(ARRSIZE($pos))
CASE(0)
$nl = ARRSIZE($neg)
LOGWRITE ("перемножаемые ", $neg[$nl-1], " * ", $neg[$nl-2], " * ", $neg[$nl-3])
$result = $neg[$nl-1] * $neg[$nl-2] * $neg[$nl-3]
CASE(1)
LOGWRITE ("перемножаемые ", $pos[0], " * ", $neg[0], " * ", $neg[1])
$result = $pos[0] * $neg[0] * $neg[1]
CASE(2)
IF(ARRSIZE($neg) > 1)
LOGWRITE ("перемножаемые ", $pos[0], " * ", $neg[0], " * ", $neg[1])
$result = $pos[0] * $neg[0] * $neg[1]
ELSE
$result = 0
END_IF
DEFAULT
IF(ARRSIZE($neg) > 1)
$r1 = $pos[0] * $pos[1] * $pos[2]
$r2 = $pos[0] * $neg[0] * $neg[1]
IF($r1 > $r2)
LOGWRITE ("перемножаемые ", $pos[0], " * ", $pos[1], " * ", $pos[2])
$result = $r1
ELSE
LOGWRITE ("перемножаемые ", $pos[0], " * ", $neg[0], " * ", $neg[1])
$result = $r2
END_IF
ELSE
LOGWRITE ("перемножаемые ", $pos[0], " * ", $pos[1], " * ", $pos[2])
$result = $pos[0] * $pos[1] * $pos[2]
END_IF
END_SWITCH
END_IF
END_IF
END_SUB
//==============================================================================
LOGCLEAR
// задан массив
STRSEPARATE("3,-2,4,0", ",", $list_of_ints) # "3,-2,4,0" "5,3,-2,0,0"
$t=$_ms
multi_3_max()
LOGWRITE ("Результат: ", $result)
print("за ",$_ms-$t,"ms")
HALT
[/spoiler]
Сильно заметно, что код на кликере не такой изящный как можно сделать на других языках. Не хватает мелочей. Все эти многоэтажные вложенные условия выглядят не очень хорошо.
Хорошо бы ещё была встроенная функция сортировки массивов прямая и обратная. Понятно, что на всё это давно сделаны подпрограммы, но вот скорость. Делфи бы их сортировал в 1000 раз быстрее.
Ещё бы не помешал вариант свитча с произвольными условиями в CASE или в варианте ELIF что ещё лучше.
Вот даже попробую сделать тоже самое на питоне, чтобы посмотреть насколько делать удобней и лучше выглядит.