Là một fan hâm mộ của một đội bóng BE thành công vừa phải , đến cuối mùa giải, tôi thường tự hỏi liệu đội bóng yêu thích của tôi có còn cơ hội lý thuyết nào để trở thành nhà vô địch hay không. Nhiệm vụ của bạn trong thử thách này là trả lời câu hỏi đó cho tôi.
Đầu vào
Bạn sẽ nhận được ba đầu vào: bảng hiện tại, danh sách các trận đấu còn lại và vị trí hiện tại của đội mà chúng tôi quan tâm.
Đầu vào 1: Bảng hiện tại , một dãy số là số thứ i là số điểm mà nhóm i đạt được cho đến nay. Ví dụ: đầu vào
[93, 86, 78, 76, 75]
mã hóa bảng sau (chỉ cột cuối cùng có tầm quan trọng):
Đầu vào 2 : Các trận đấu còn lại , một chuỗi các bộ dữ liệu trong đó mỗi bộ dữ liệu ( i , j ) là viết tắt của một trận đấu còn lại giữa đội i và j . Trong ví dụ trên, đầu vào thứ hai [(1,2), (4,3), (2,3), (3,2), (1,2)]
có nghĩa là các kết quả khớp còn lại là:
Chelsea vs Tottenham, Liverpool vs Man. City, Tottenham vs Man. City, Man. City vs Tottenham, Chelsea vs Tottenham
Đầu vào 3: Vị trí hiện tại của đội bóng mà chúng tôi quan tâm. Ví dụ: đầu vào của 2
ví dụ trên có nghĩa là chúng tôi muốn biết liệu Tottenham có còn trở thành nhà vô địch hay không.
Đầu ra
Đối với mỗi trận đấu còn lại của biểu mẫu ( i , j ), có ba kết quả có thể xảy ra:
- Đội i thắng: Đội i được 3 điểm , đội j được 0 điểm
- Đội j thắng: Đội i được 0 điểm , đội j được 3 điểm
- Bốc thăm: Đội i và j đều được 1 điểm
Bạn phải xuất ra một giá trị trung thực nếu có một số kết quả cho tất cả các trò chơi còn lại sao cho cuối cùng, không có đội nào khác có nhiều điểm hơn nhóm được chỉ định trong đầu vào thứ 3. Nếu không, xuất ra một giá trị giả.
Ví dụ : Xem xét đầu vào mẫu mực từ phần trên:
Đầu vào 1 = [93, 86, 78, 76, 75]
, Đầu vào 2 = [(1,2), (4,3), (2,3), (3,2), (1,2)]
, Đầu vào 3 =2
Nếu đội 2
thắng tất cả các trận đấu còn lại (nghĩa là (1,2), (2,3), (3,2), (1,2)
), nó được 4 * 3 = 12 điểm bổ sung; không đội nào khác nhận được điểm nào từ những trận đấu này. Giả sử trận đấu còn lại (nghĩa là (4,3)
) là một trận hòa. Sau đó, điểm số cuối cùng sẽ là:
Team 1: 93, Team 2: 86 + 12 = 98, Team 3: 78 + 1 = 79, Team 4: 76 + 1 = 77, Team 5: 75
Điều này có nghĩa là chúng tôi đã tìm thấy một số kết quả cho các trận đấu còn lại sao cho không có đội nào khác có nhiều điểm hơn đội 2
, vì vậy đầu ra cho đầu vào này phải là sự thật.
Chi tiết
- Bạn có thể giả sử đầu vào đầu tiên là một chuỗi theo thứ tự, tức là đối với i < j , mục nhập thứ i bằng hoặc lớn hơn mục nhập thứ j . Đầu vào đầu tiên có thể được lấy dưới dạng danh sách, chuỗi hoặc tương tự.
- Bạn có thể lấy đầu vào thứ hai dưới dạng một chuỗi, một danh sách các bộ dữ liệu hoặc tương tự. Ngoài ra, bạn có thể coi nó là một mảng hai chiều
a
trong đóa[i][j]
số lượng mục nhập của biểu mẫu(i,j)
trong danh sách các kết quả khớp còn lại. Ví dụ,a[1][2] = 2, a[2][3] = 1, a[3][2] = 1, a[4][3] = 1
tương ứng với[(1,2), (4,3), (2,3), (3,2), (1,2)]
. - Đối với đầu vào thứ hai và thứ ba, bạn có thể giả sử lập chỉ mục 0 thay vì lập chỉ mục 1.
- Bạn có thể lấy ba đầu vào theo thứ tự bất kỳ.
Vui lòng xác định định dạng đầu vào chính xác mà bạn đã chọn trong câu trả lời của mình.
Nút phụ : Vấn đề tiềm ẩn trong thử thách này đã được thể hiện là hoàn thành NP trong " Loại bỏ bóng đá khó quyết định theo Quy tắc 3 điểm ". Thật thú vị, nếu chỉ có hai điểm được trao cho một chiến thắng, vấn đề sẽ trở nên có thể giải quyết trong thời gian đa thức.
Các trường hợp thử nghiệm
Tất cả các trường hợp thử nghiệm là ở định dạng Input1
, Input2
, Input3
.
Sự thật:
[93, 86, 78, 76, 75]
,[(1,2), (4,3), (2,3), (3,2), (1,2)]
,2
[50]
,[]
,1
[10, 10, 10]
,[]
,3
[15, 10, 8]
,[(2,3), (1,3), (1,3), (3,1), (2,1)]
,2
Giả mạo:
[10, 9, 8]
,[]
,2
[10, 9, 9]
,[(2,3), (3,2)]
,1
[21, 12, 11]
,[(2,1), (1,2), (2,3), (1,3), (1,3), (3,1), (3,1)]
,2
Người chiến thắng
Đây là môn đánh gôn , vì vậy câu trả lời đúng nhất (tính bằng byte) sẽ thắng. Người chiến thắng sẽ được chọn một tuần sau khi câu trả lời đúng đầu tiên được đăng.