(나는 1542 동안 이것을 게시하려고했습니다 : 스케줄링 충돌 은 여전히 현재 xkcd 였지만 스케줄링 충돌이있었습니다.)
입력
입력은 이벤트 3n
를 나타내는 요소 목록입니다 n
. 3의 각 그룹에서 첫 번째 요소는 이벤트의 이름입니다. 두 번째와 세 번째는 각각 시작 및 종료 시간입니다. 예를 들면 다음과 같습니다.
foo 12 34 bar 56 78
foo
"시간 12"에서 시작 하는 이벤트 를 나타냅니다 (시간은 단순히 정수로 표시됩니다. 자정이 지난 분으로 생각할 수 있음). 34에서 끝나고 두 번째 이벤트 bar
는 56에서 시작하여 78에서 끝납니다.
이벤트 이름은 항상 영숫자 문자만으로 구성되며 시간은 항상 ≥ 0 및 <1440의 정수입니다. 종료 시간은 항상 시작 시간보다 1 이상 큽니다. 어떤 식 으로든 정렬 될 수는 없습니다.
원하는 경우 공백으로 구분 된 단일 문자열로 사용할 수 있습니다. 그렇지 않으면 배열, 목록, 벡터 또는 해당 언어로 간주해야합니다.
산출
출력은 공백으로 구분 된 이벤트 이름 목록이어야합니다. 출력 할 이벤트 이름의 규칙은 다음과 같습니다.
출력 한 이벤트 중 어느 것도 서로 충돌 할 수 없습니다. 예를 들어, 입력이있는
a 0 10 b 5 15
경우를 모두 출력하지 않을 수a
와b
때문에 충돌 시간 (이며 부분적으로 중첩). 다른 이벤트가 시작될 때 이벤트가 정확하게 종료되면 둘 다 포함 할 수 있습니다.입력에 항상 정확히 하나만 있는 이벤트
NSCC
( "National Scheduling Conflict Competition")를 출력 할 수 없습니다 . 또한 충돌하는 (부분적으로 겹치는) 이벤트를 하나 이상 출력 해야합니다 (그리고 항상 그 중 하나도 있어야 함).NSCC
위의 두 규칙을 따르는 동안 가능한 많은 이벤트를 출력해야합니다. (이것은 가능한 한 바쁘게 보이기 때문에 NSCC를 놓치는 것이 더 신뢰할만한 것처럼 보입니다.)
단일 공백으로 구분 된 문자열 또는 배열, 목록, 벡터 등으로 출력 될 수도 있습니다.
가능한 출력이 둘 이상있을 수 있습니다.
테스트 사례
나열된 출력은 단지 예일뿐입니다. 위의 세 가지 규칙을 따르는 한 코드에서 다른 결과를 출력 할 수 있습니다 (특히, 예 와 동일한 양 의 이벤트 가 있어야 함을 의미 함 ).
에서 : UnderwaterBasketWeavingConvention 50 800 NSCC 500 550
밖으로 :UnderwaterBasketWeavingConvention
에서 : SconeEating 0 50 RegexSubbing 45 110 CodeGolfing 95 105 NSCC 100 200
밖으로 :SconeEating CodeGolfing
에서 : VelociraptorHunting 0 300 NerdSniping 200 500 SEChatting 400 700 DoorknobTurning 650 750 NSCC 725 775
밖으로 :NerdSniping DoorknobTurning
에서 : NSCC 110 115 A 100 120 B 120 140 C 105 135 D 100 105 E 135 500
밖으로 :C D E
에서 : A 800 900 NSCC 700 1000 B 650 750 C 950 1050 D 655 660 E 660 665 F 1030 1040 G 1040 1060
밖으로 :A D E F G
에서 : A 10 11 B 11 12 C 12 13 D 13 14 NSCC 15 1090 E 10 16
밖으로 :E
내가 놓친 엣지 케이스가 있으면 편집에 더 많은 테스트 사례를 추가하십시오.
규칙
제공되는 모든 테스트 사례에 대해 코드를 30 초 이내에 완료해야합니다 (모든 테스트 사례에 대해 훨씬 더 빨리 완료해야하므로 적절한 상태 검사).
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 이깁니다.
underwaterBasketWeavingConvention 50 800 nscc 550
예를 들어 예제 대신 사용 합니까?