expression — строку из однозначных чисел, между которыми стоят знаки + и *, например 4+2*3. Считать его нужно по обычным правилам: сначала все умножения слева направо, потом все сложения слева направо.
Ответы учеников собраны в массив answers в произвольном порядке. Каждый ответ оценивается так:
- **5 баллов**, если он равен правильному значению выражения;
- иначе **2 балла**, если такое число можно получить, выполняя действия в каком-то другом порядке, то есть расставив в выражении скобки как-нибудь по-своему, но не ошибаясь в арифметике;
- иначе **0 баллов**.
Верните сумму баллов всех учеников.expression="4+2*3", answers=[10, 18, 10, 7, 0] → 12
Правильно: 4 + 2·3 = 10, два ученика получают по 5 баллов. Ответ 18 получится, если сначала сложить: (4 + 2)·3 — это 2 балла. 7 и 0 никакой расстановкой скобок не получить. Итого 5 + 2 + 5 = 12.
expression="2*3+1*4", answers=[10, 14, 32, 9] → 9
Правильный ответ 10. При другом порядке действий можно получить 14 = 2·(3 + 1·4), 28 = (2·3 + 1)·4 и 32 = 2·(3 + 1)·4, поэтому 14 и 32 приносят по 2 балла, а 9 — ничего. Итого 9.
expression="3+0*1", answers=[3, 3, 0] → 10
(3 + 0)·1 тоже равно 3, но ответ совпадает с правильным, так что это по-прежнему 5 баллов, а не 2. Ответ 0 получить нельзя. Итого 10.
expression — корректное выражение: цифры от 0 до 9, чередующиеся со знаками + и *, в начале и в конце — цифраexpression="4+2*3", answers=[10, 18, 10, 7, 0]
12
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 108 тестов на сервере, включая скрытые.