W piłce nożnej (zwanej także piłką nożną) rzut karny jest drugim środkiem rozstrzygającym, który może być zastosowany w meczu, który nie może zakończyć się remisem, po dogrywce (tj. Dogrywce w piłce nożnej w stowarzyszeniu).
W rzutach karnych sędzia główny rzuca monetą, aby ustalić, przy której bramce ma miejsce rzut karny, a następnie rzuca kolejną monetą, aby ustalić, która drużyna zaczyna jako pierwsza. Jednak jedyne istotne dla tego wyzwania jest to, co dzieje się wtedy, opisane poniżej.
Każda drużyna ma 5 kar dostępnych na starcie, a wynik karny to 0-0. Jeśli w dowolnym momencie pozostałe kary drużyny nie wystarczą, aby zmienić aktualnie zwycięską drużynę, strzelanie zostaje przerwane.
Jeśli nie ma już kar, ale punkty obu drużyn są równe, obie drużyny otrzymują dodatkową karę. Jest to powtarzane, dopóki punkty nie będą równe.
Po zatrzymaniu rzutów karnych drużyna z największym wynikiem karnym wygrywa.
Wyzwanie
Twoim wyzwaniem jest, biorąc pod uwagę dwie listy Ai Breprezentujące, które rzuty karne uzyskały odpowiednio drużyna A i drużyna B, aby ustalić, czy reprezentują one rzuty karne ważne. Rzuty rożne są ważne, jeśli można osiągnąć stan reprezentowany przez dane wejściowe, niezależnie od tego, czy można ustalić zwycięską drużynę. Należy pamiętać, że być może trzeba przetestować oba scenariusze (uruchomienie drużyny A, uruchomienie drużyny B), ponieważ jeśli stan opisany na wejściu jest osiągalny dla co najmniej jednego scenariusza, dane wejściowe są prawidłowe. Jeśli długości list są różne, drużyna reprezentowana przez dłuższą startuje jako pierwsza (może mieć tylko jeden element więcej niż drugi, a drużyna krótszej listy nie może się rozpocząć, ponieważ wtedy drużyna dłuższej listy strzeliłaby dwie kary z rzędu, ponieważ krótsza lista zostanie przedwcześnie wyczerpana).
Szczegółowe przykłady
Możesz przejść do sekcji Reguły poniżej, mają one jedynie pomóc w rozwiązaniu problemu.
Załóżmy, że otrzymujesz ten rzut karny jako wkład, w którym -oznacza to , że nie padła żadna bramka i Xże padła bramka (jest nieważna):
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.
Przeciwnie, oto poprawny przykład:
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.
Kolejny przykład, tym razem z dodatkowymi karami:
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.
Oto prawidłowe dane wejściowe, w których jest zbyt wcześnie, aby określić zwycięzcę:
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.
Wreszcie, oto dane wejściowe, w których długości list różnią się:
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.
Zasady
- Drużyna, która strzela jako pierwsza, może być A lub B, nie można zakładać, że zawsze będzie strzelać jako pierwsza.
- Listy będą miały tę samą długość lub ich długości będą się różnić o jeden.
- Możesz wybrać dowolne dwie odrębne i spójne wartości, które będą reprezentować strzelone / niepunkcjonowane kary.
- Listy mogą być również reprezentowane jako liczby całkowite przekonwertowane z bijective base 2, string lub rodzimego formatu listy twojego języka. Jeśli wybrany jest format bijective base 2, reguły wprowadzania mają zastosowanie do liczb przekonwertowanych na bijective base 2 (więc cyfry
1i2mogą oznaczać odpowiednio ocenę punktową i nieprzypisaną lub nieprzypisaną i ocenę punktową). Zwykły plik binarny jest niedozwolony , ponieważ nie można określić obecności zer wiodących w zamierzonej reprezentacji binarnej. - To jest golf golfowy , więc wygrywa najkrótsze rozwiązanie. Prosimy jednak nie zniechęcać się do odbierania odpowiedzi, nawet jeśli wydaje się, że Twój język nie jest w stanie „pokonać języków specjalistycznych”.
Przypadki testowe
W tych przypadkach testowych a 0będzie stanowić cel bez celu, a a 1będzie stanowić cel.
Format:
[Team A], [Team B]
Prawidłowe dane wejściowe:
[], []
[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]
Nieprawidłowe dane wejściowe:
[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]](lub jakikolwiek przypadek testowy, w którym jedna z dwóch wewnętrznych list zawiera 2 elementy) jest prawdą, ponieważ gra wciąż trwa (podobnie jak przypadki testowe z [[0],[1]]lub [[0],[]]wciąż trwają)?