У футболі асоціацій (також відомий як футбол), реалізація пенальті - це другий захід, який може бути застосований у матчі, який не може закінчитися внічию, після додаткового часу (тобто футбол, який проводиться в овертаймі).
Під час пенальті головний арбітр кидає монету, щоб визначити, з якого мети відбувається перестрілка, а потім кидає іншу монету, щоб визначити, яка команда починає першим. Однак єдиним, що має відношення до цього виклику, є те, що відбувається тоді, описане нижче.
Кожна команда має 5 штрафних санкцій на старті, а штрафний бал - 0-0. Якщо в будь-який момент решти штрафних санкцій команди недостатньо, щоб змінити команду-переможницю, перестрілка припиняється.
Якщо немає пенальті, але бали обох команд рівні, обом командам надається додатковий штраф. Це повторюється, поки бали не рівні.
Після припинення перестрілки команда з найбільшою кількістю штрафних балів виграє гру.
Виклик
Ваша задача полягає в тому, що ви маєте два списки Aі Bпредставляєте, які пенальті команда А та команда В забили відповідно, щоб визначити, чи є вони дійсними пенальті. Відстріл є дійсним, якщо стан, представлений вводом, може бути досягнутий, незалежно від того, чи може бути визначена команда-переможець. Зауважте, що вам, можливо, доведеться протестувати для обох сценаріїв (команда А, старт, команда B, старт), оскільки, якщо стан, описаний у вході, доступний принаймні для одного сценарію, введення є дійсним. Якщо довжина списків різна, команда, представлена більш довгим, починається спочатку (у неї може бути лише один елемент більше, ніж інший, і команда коротшого списку не може починатись, оскільки тоді команда більш тривалого списку стрілятиме два штрафи поспіль, оскільки коротший список буде передчасно вичерпаний).
Детальні приклади
Ви можете перейти до розділу Правила нижче, це лише для вирішення проблеми.
Припустимо, ви отримуєте цю передачу як вхідну, де -означає, що жоден гол не був забитий і Xозначає, що гол був забитий (недійсний):
Team A: - X X X X
Team B: - - - - X
Assuming team A starts first:
Team A: - (0 - 0) (max possible score 4 - 5)
Team B: - (0 - 0) (max possible score 4 - 4)
Team A: X (1 - 0) (max possible score 4 - 4)
Team B: - (1 - 0) (max possible score 4 - 3)
Team A: X (2 - 0) (max possible score 4 - 3)
Team B: - (2 - 0) (max possible score 4 - 2)
Team A: X (3 - 0) (max possible score 4 - 2)
Team A already has a higher score than B could ever have, but the input hasn't
ended yet, so it's invalid if team A is first.
Assuming team B starts first:
Team B: - (0 - 0) (max possible score 5 - 4)
Team A: - (0 - 0) (max possible score 4 - 4)
Team B: - (0 - 0) (max possible score 4 - 3)
Team A: X (1 - 0) (max possible score 4 - 3)
Team B: - (1 - 0) (max possible score 4 - 2)
Team A: X (2 - 0) (max possible score 4 - 2)
Team B: - (2 - 0) (max possible score 4 - 1)
Team A already has a higher score than B could ever have, but the input hasn't
ended yet, so it's invalid if team B stars first.
The input is invalid no matter which team starts first, so it's considered
invalid.
Навпаки, ось вагомий приклад:
Team A: X X X
Team B: - - -
Assuming team A starts first:
Team A: X (1 - 0) (max possible score 5 - 5)
Team B: - (1 - 0) (max possible score 5 - 4)
Team A: X (2 - 0) (max possible score 5 - 4)
Team B: - (2 - 0) (max possible score 5 - 3)
Team A: X (3 - 0) (max possible score 5 - 3)
Team B: - (3 - 0) (max possible score 5 - 2)
It can be determined that team A wins, however the input has ended, so it's
valid if team A starts first. Therefore, the input is valid.
Ще один приклад, цього разу із додатковими штрафами:
Team A: X - X - - - X -
Team B: - X X - - - X X
Assuming team A starts first:
Team A: X (1 - 0) (max possible score 5 - 5)
Team B: - (1 - 0) (max possible score 5 - 4)
Team A: - (1 - 0) (max possible score 4 - 4)
Team B: X (1 - 1) (max possible score 4 - 4)
Team A: X (2 - 1) (max possible score 4 - 4)
Team B: X (2 - 2) (max possible score 4 - 4)
Team A: - (2 - 2) (max possible score 3 - 4)
Team B: - (2 - 2) (max possible score 3 - 3)
Team A: - (2 - 2) (max possible score 2 - 3)
Team B: - (2 - 2) (max possible score 2 - 2)
First 5 penalties result in a tie, so we move on to extra penalties.
Team A: -, Team B: - (2 - 2)
Team A: X, Team B: X (3 - 3)
Team A: -, Team B: X (3 - 4)
It can be determined that team B wins, however the input has ended, so it's
valid if team A starts first. Therefore, the input is valid.
Ось вагомий вклад, коли визначити переможця зарано:
Team A: X X - -
Team B: - X - X
Assuming team A starts first:
Team A: X (1 - 0) (max possible score 5 - 5)
Team B: - (1 - 0) (max possible score 5 - 4)
Team A: X (2 - 0) (max possible score 5 - 4)
Team B: X (2 - 1) (max possible score 5 - 4)
Team A: - (2 - 1) (max possible score 4 - 4)
Team B: - (2 - 1) (max possible score 4 - 3)
Team A: - (2 - 1) (max possible score 3 - 3)
Team B: X (2 - 2) (max possible score 3 - 3)
The input has ended before the winner can be determined, so it's valid if team A
starts first. Therefore, the input is valid.
Нарешті, ось подання, де довжини списків різняться:
Team A: - - -
Team B: X X - X
Since team B shot more penalties, it starts first:
Team B: X (0 - 1) (max possible score 5 - 5)
Team A: - (0 - 1) (max possible score 4 - 5)
Team B: X (0 - 2) (max possible score 4 - 5)
Team A: - (0 - 2) (max possible score 3 - 5)
Team B: - (0 - 2) (max possible score 3 - 4)
Team A: - (0 - 2) (max possible score 2 - 4)
Team B: X (0 - 3) (max possible score 2 - 4)
It can be determined that team B wins, however the input has ended, so it's
valid.
Правила
- Команда, яка стріляє першою, може бути або A, або B, ви не можете припустити, що завжди буде стріляти першою.
- Список буде або однакової довжини, або їх довжина буде відрізнятися на одиницю.
- Ви можете вибрати будь-які два чіткі та послідовні значення для відображення набраних / незакритих штрафних санкцій.
- Списки також можуть бути представлені у вигляді цілих чисел, перетворених з біективної бази 2, рядків або у вихідний формат списку вашої мови. Якщо обраний формат бієктивної бази 2, правила введення застосовуються до чисел, перетворених у біективну базу 2 (тобто цифри
1і2можуть означати як забитий, так і незабарвлений або неполірований і набраний відповідно). Регулярні двійкові не дозволяються , оскільки не можна визначити наявність провідних нулів у призначеному бінарному поданні. - Це код-гольф , тому найкоротше рішення виграє. Однак, будь ласка, не відмовляйтеся від відповідей, навіть якщо здається, що ваша мова не може "перемогти спеціалізовані".
Тестові справи
У цих тестових випадках засіб 0буде представляти мету, а тест 1- мета.
Формат:
[Team A], [Team B]
Дійсні входи:
[], []
[0], [0]
[0], [1]
[1], [1]
[0], []
[1, 1, 1, 1], [0, 0, 1, 1]
[0, 1, 1, 1, 1], [0, 1, 1, 0]
[0, 0, 0, 0, 1], [0, 0, 0, 1, 0]
[0, 0, 0, 0, 1], [0, 0, 0, 1]
[1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1]
[0, 1, 1, 1, 1], [0, 1, 1, 0, 1]
[1, 1, 1], [0, 0, 0]
[1, 1, 1, 1], [0, 0, 1]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Недійсні входи:
[0, 1, 1, 1, 1], [0, 1, 1, 0, 0]
[0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 1, 0]
[0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 1]
[1, 1, 1, 0], [0, 0, 0]
[1, 1, 1, 1], [0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
[1, 0, 1, 0, 1], [0, 1, 0, 1, 0, 1]
[0, 0, 0, 0, 1], [0, 1, 1, 1, 0]
[[0,0],[1,1]](чи будь-який тестовий випадок, коли один із двох внутрішніх списків містить 2 елементи) є правдивим, оскільки гра все ще триває (як і тестові справи з [[0],[1]]або [[0],[]]ще тривають)?