ในสมาคมฟุตบอล (หรือเรียกอีกอย่างว่าฟุตบอล) การยิงจุดโทษเป็นมาตรการที่สองที่ใช้ในการแข่งขันซึ่งไม่สามารถจบลงด้วยการเสมอกันหลังจากช่วงต่อเวลาพิเศษ (เช่นสมาคมฟุตบอลล่วงเวลา)
ในการยิงจุดโทษผู้ตัดสินหลักโยนเหรียญเพื่อตัดสินว่าเกิดการยิงประตูครั้งใดจากนั้นโยนเหรียญอีกครั้งเพื่อพิจารณาว่าทีมใดเริ่มต้นก่อน อย่างไรก็ตามสิ่งเดียวที่เกี่ยวข้องกับความท้าทายนี้คือสิ่งที่เกิดขึ้นแล้วอธิบายไว้ด้านล่าง
แต่ละทีมมีการลงโทษ 5 ครั้งในตอนเริ่มต้นและคะแนนการลงโทษคือ 0-0 หาก ณ จุดใดก็ตามบทลงโทษที่เหลืออยู่ของทีมไม่เพียงพอที่จะเปลี่ยนทีมที่ชนะในปัจจุบันการยิงออกจะหยุด
หากไม่มีบทลงโทษที่เหลืออยู่ แต่คะแนนของทั้งสองทีมเท่ากันจะมีการลงโทษเพิ่มทั้งสองทีม สิ่งนี้ซ้ำจนกว่าคะแนนจะไม่เท่ากัน
หลังจากหยุดยิงทีมที่ได้คะแนนการลงโทษมากที่สุดจะเป็นผู้ชนะ
ท้าทาย
ความท้าทายของคุณคือให้สองรายการAและBแสดงว่าทีม A และทีม B ได้ทำแต้มตามลำดับเพื่อตัดสินว่าพวกเขาเป็นตัวแทนของการยิงลูกโทษที่ถูกต้องหรือไม่ การยิงออกจะถูกต้องหากรัฐเป็นตัวแทนจากการป้อนข้อมูลสามารถเข้าถึงได้โดยไม่คำนึงว่าทีมที่ชนะสามารถกำหนดได้ โปรดทราบว่าคุณอาจต้องทดสอบทั้งสองสถานการณ์ (ทีม A เริ่มต้น, ทีม 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 คุณไม่สามารถสันนิษฐานได้ว่าจะยิงก่อนเสมอ
- รายการจะมีความยาวเท่ากันหรือความยาวจะแตกต่างกันไปหนึ่งรายการ
- คุณสามารถเลือกสองค่าที่แตกต่างและสอดคล้องกันเพื่อแสดงถึงการลงโทษที่ได้คะแนน / ไม่ได้คะแนน
- รายการยังสามารถแสดงเป็นจำนวนเต็มที่แปลงจากbijective base 2, สตริงหรือรูปแบบรายการดั้งเดิมของภาษาของคุณ หากเลือกรูปแบบฐาน bijective 2 กฎอินพุตจะนำไปใช้กับตัวเลขที่แปลงเป็นฐาน bijective 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],[]]กำลังดำเนินการอยู่)?