시즌이 끝날 무렵 에 가장 성공한 축구 BE 팀 의 팬으로서 나는 종종 내가 좋아하는 팀이 여전히 챔피언이 될 이론적 기회가 있는지 궁금해합니다. 이 도전에서 당신의 임무는 저에게 그 질문에 대답하는 것입니다.
입력
현재 테이블, 남은 경기 목록 및 관심있는 팀의 현재 위치의 세 가지 입력을받습니다.
입력 1 : 현재 테이블 , 숫자의 순서가 있었다 내가 번째 숫자는 팀에 의해 얻은 점이다 나는 지금까지. 예를 들어, 입력
[93, 86, 78, 76, 75]
은 다음 테이블을 인코딩합니다 (마지막 열만 중요 함).
입력 2 : 나머지 일치 , 각 튜플 ( i , j )이 팀 i 와 j 간의 나머지 일치 를 나타내는 일련의 튜플 . 위의 예에서 두 번째 입력은 [(1,2), (4,3), (2,3), (3,2), (1,2)]
나머지 일치 항목이 다음을 의미합니다.
Chelsea vs Tottenham, Liverpool vs Man. City, Tottenham vs Man. City, Man. City vs Tottenham, Chelsea vs Tottenham
입력 3 : 우리가 관심있는 팀 의 현재 위치 . 예를 들어, 2
위의 예를 입력 하면 Tottenham이 여전히 챔피언이 될 수 있는지 알고 싶습니다.
산출
양식 ( i , j ) 의 나머지 각 일치에 대해 세 가지 가능한 결과가 있습니다.
- 팀 내가 팀 : 승리 내가 도착 3 점을 팀, j는 얻을 수 0 점
- 팀 J 승리 : 팀 i 는 0 점을 얻 습니다. 팀 J 는 3 점을 얻습니다.
- 추첨 : 팀 i 와 j 모두 1 점을 얻습니다.
남은 모든 게임에 대해 어떤 결과가 나오면 결국 다른 팀이 세 번째 입력에 지정된 팀보다 더 많은 점수를 가지지 않도록 진실한 값을 출력해야합니다. 그렇지 않으면 거짓 값을 출력하십시오.
예 : 위 섹션의 예시 입력을 고려하십시오.
입력 1 = [93, 86, 78, 76, 75]
, 입력 2 = [(1,2), (4,3), (2,3), (3,2), (1,2)]
, 입력 3 =2
팀 2
이 남은 경기에서 모두 이기면 (즉 (1,2), (2,3), (3,2), (1,2)
) 4 * 3 = 12 추가 점수를 얻습니다. 다른 팀은이 경기에서 점수를 얻지 못합니다. 나머지 다른 경기 (즉 (4,3)
)가 무승부 라고 가정 해 봅시다 . 최종 점수는 다음과 같습니다.
Team 1: 93, Team 2: 86 + 12 = 98, Team 3: 78 + 1 = 79, Team 4: 76 + 1 = 77, Team 5: 75
이것은 우리가 남은 경기에서 이미 다른 팀이 팀보다 더 많은 점수를 가지지 않는 결과를 찾았 음을 의미 2
하므로이 입력의 결과는 진실해야합니다.
세부
- 첫 번째 입력이 순서가 지정된 순서라고 가정 할 수 있습니다. 즉 i < j 의 경우 i 번째 항목은 j 번째 항목 이상입니다. 제 1 입력은리스트, 문자열 등으로 받아 들여질 수있다.
- 두 번째 입력은 문자열, 튜플 목록 등으로 사용할 수 있습니다. 또는 나머지 일치 목록의 양식 항목 수인 2 차원 배열
a
로a[i][j]
사용할 수(i,j)
있습니다. 예를 들어에a[1][2] = 2, a[2][3] = 1, a[3][2] = 1, a[4][3] = 1
해당합니다[(1,2), (4,3), (2,3), (3,2), (1,2)]
. - 두 번째 및 세 번째 입력의 경우 1- 인덱싱 대신 0- 인덱싱을 가정 할 수 있습니다.
- 세 가지 입력을 순서에 상관없이 사용할 수 있습니다.
답변에서 선택한 정확한 입력 형식을 지정하십시오.
사이드 노드 :이 도전의 근본적인 문제는 " 축구 제거가 3 점 규칙에 따라 결정하기 어렵다 "에서 NP- 완전한 것으로 나타났습니다 . 흥미롭게도, 2 점만 이기면 다항식 시간에 문제를 해결할 수 있습니다.
테스트 사례
모든 테스트 케이스는 형식으로되어 있습니다 Input1
, Input2
, Input3
.
진실한 :
[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
거짓 :
[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
우승자
이것은 code-golf 이므로 가장 짧은 정답 (바이트)이 이깁니다. 당첨자는 첫 정답이 게시 된 지 1 주일 후에 선정됩니다.