로드는 조지와 팀의 두 플레이어 사이에서 카드 게임을 진행하고 있습니다. 현재 팀은 카드를 섞고 있습니다. 로드는 팀이 바람을 피우려고한다고 의심하므로 셔플이 공정한지 확인하는 데 도움이 필요합니다.
팀은 오버 핸드 셔플을하고있다 : 그는 덱 맨 아래에서 카드 더미를 자른 다음, 덱 맨 위에서 데크 맨 위로 다양한 부분을 잘라 내고 몇 번 반복한다.
로드는 독수리 모양이며 팀이 매번 얼마나 많은 카드를 자르고 있는지 정확히 볼 수 있지만 팀이 셔플 링하는 한 빨리 카드를 계산하고 추적 할 수는 없습니다. 로드는 상세한 셔플 링 정보를 얻고 셔플이 공정한지, 약한 지, 트릭인지를 결정하는 프로그램이나 함수를 작성하기를 원합니다.
- 셔플 링 후, 25 쌍 미만의 인접 카드가 (동일한 순서로) 인접하게 유지되면, 셔플은 공정하며 게임은 계속 될 수 있습니다.
- 인접 카드가 25 개 이상 (모두는 아님) 쌍으로 인접 해 있으면 셔플은 약해지며로드는 팀을 머리 위로 튕겨서 더 섞을 것을 요청합니다.
- 모든 카드가 마지막에 같은 위치에 남아 있다면 Tim은 분명히 바람을 피우고 Rod는 큰 송어로 그를 때릴 것입니다.
이것은 코드 골프이므로 가장 짧은 코드가 승리합니다.
입력:
여러 줄에서 공백으로 구분 된 0에서 52 사이의 숫자 (모두 독점) 사이에 일련의 숫자가 표시됩니다. 각 줄은 모든 카드가 쌓여서 시작하고 끝나는 셔플 링 라운드를 나타냅니다.
각 줄에서 첫 번째 숫자는 팀이 덱 맨 아래에서 잘라낸 카드의 수이며, 그 이후의 숫자는 손에서 덱 맨 위에 놓인 카드의 수입니다. 한 줄의 마지막 숫자 뒤에 카드가 남아 있으면 팀이 카드를 덱 위에 놓았다고 가정해야합니다.
입력이 유효합니다. 최소한 한 줄의 숫자가 있으며 각 줄에는 최소한 두 개의 숫자가 포함됩니다. 각 줄의 첫 번째 숫자는 같은 줄의 다른 모든 숫자의 합보다 작지 않습니다. 후행 줄 바꿈은 선택 사항이므로 입력에 하나가 있거나없는 것으로 가정 할 수 있습니다.
산출:
셔플이 공정한 경우 프로그램은 "공정한", 셔플이 약한 경우 "약한", 팀이 모든 카드를 같은 순서로 유지하는 경우 "속임"을 인쇄 / 반환해야합니다. 후행 줄 바꿈은 선택 사항입니다.
예:
덱에는 52 장의 카드가있는 것으로 가정하지만 데모 목적으로 10 장의 더 작은 덱을 사용하겠습니다.
입력:
5 3 1
4 2 2
위에서 본 초기 데크 : 0 1 2 3 4 5 6 7 8 9
5
➜ 0 1 2 3 4
( 5 6 7 8 9
손)
3
➜ 5 6 7 0 1 2 3 4
( 8 9
손)
1
➜ 8 5 6 7 0 1 2 3 4
( 9
손)
선 끝 ➜ 9 8 5 6 7 0 1 2 3 4
4
➜ 9 8 5 6 7 0
( 1 2 3 4
손)
2
➜ 1 2 9 8 5 6 7 0
( 3 4
손)
2
➜ 3 4 1 2 9 8 5 6 7 0
4 쌍이 인접 해 있습니다.(3 4) (1 2) (5 6) (6 7)
테스트 사례 :
43 5 5 5 5 5 5 5 5
43 5 5 5 5 5 5 5 5
43 5 5 5 5 5 5 5 5
산출: fair
43 5 5 5 5 5 5 5 5
43 5 5 5 5 5 5 5 5
43 5 5 5 5 5 5 5
산출: weak
29 24
19 18
38 2 1 8 13 6 4
47 15 16 5 2 1 7
34 22 9 3
44 9 10 11 3 1 7
33 18 4 2 3 3
산출: fair
24 6 12 4
25 3 19
36 4 25 2
19 11 1 3
15 9 3
37 5 27
산출: weak
26 13
26 13
26 13
26 13
산출: trick
50 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
산출: weak
50 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
50 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
산출: trick
50 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
49 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
산출: fair
요구 사항 :
- 함수를 작성하면 표준 입력에서 읽거나 단일 문자열 매개 변수로 입력을 수신 할 수 있습니다. 또한이 함수는 출력을 인쇄하거나 반환 할 수 있습니다.
- 프로그램은 무료 소프트웨어를 사용하여 Linux에서 실행 가능해야합니다.
- 소스 코드는 ASCII 문자 만 사용해야합니다.
- 표준 허점이 없습니다.