(Tôi định đăng bài này trong khi 1542: Xung đột lập lịch vẫn là xkcd hiện tại, nhưng tôi đã có xung đột lịch trình.)
Đầu vào
Đầu vào sẽ là một danh sách các 3nyếu tố, đại diện cho ncác sự kiện. Phần tử đầu tiên trong mỗi nhóm 3 sẽ là tên của một sự kiện; lần thứ hai và thứ ba, thời gian bắt đầu và kết thúc tương ứng. Ví dụ:
foo 12 34 bar 56 78
đại diện cho một sự kiện foobắt đầu từ "thời gian 12" (thời gian được biểu thị đơn giản bằng số nguyên; bạn có thể nghĩ chúng là phút sau nửa đêm) và kết thúc lúc 34, và sự kiện thứ hai barbắt đầu từ 56 và kết thúc ở 78.
Tên của các sự kiện sẽ luôn chỉ bao gồm các ký tự chữ và số và thời gian sẽ luôn là các số nguyên ≥ 0 và <1440. Thời gian kết thúc sẽ luôn lớn hơn ít nhất 1 lần so với thời gian bắt đầu. Họ không được đảm bảo để được sắp xếp theo bất kỳ cách nào.
Nếu bạn muốn, bạn có thể coi đây là một chuỗi được phân tách bằng dấu cách; mặt khác, nó nên được sử dụng như một mảng, danh sách, vectơ hoặc ngôn ngữ của bạn.
Đầu ra
Đầu ra phải là một danh sách các tên sự kiện được phân tách bằng dấu cách. Các quy tắc cho tên sự kiện đầu ra như sau:
Không có sự kiện nào mà bạn xuất có thể xung đột với nhau. Ví dụ: với đầu vào
a 0 10 b 5 15, bạn không thể xuất cả haiavàbvì xung đột thời gian (nghĩa là chồng chéo một phần). Nếu một sự kiện kết thúc chính xác khi một sự kiện khác bắt đầu, bạn có thể bao gồm cả hai.Bạn không được xuất sự kiện có tên
NSCC("Cạnh tranh xung đột theo lịch trình quốc gia"), trong đó sẽ luôn có một trong những sự kiện đầu vào. Bạn cũng phải xuất ít nhất một sự kiện xung đột (chồng chéo một phần) vớiNSCC(và sẽ luôn có ít nhất một trong số các sự kiện đó).Bạn phải xuất ra càng nhiều sự kiện càng tốt trong khi tuân theo hai quy tắc trên. (Điều này là để bạn trông bận rộn nhất có thể, do đó, việc thiếu NSCC có vẻ đáng tin cậy hơn.)
Đây cũng có thể là đầu ra dưới dạng một chuỗi được phân tách bằng dấu cách hoặc một mảng, danh sách, vectơ, v.v.
Có thể có nhiều hơn một đầu ra có thể.
Các trường hợp thử nghiệm
Lưu ý rằng các đầu ra được liệt kê chỉ là ví dụ. Mã của bạn có thể xuất ra một cái gì đó khác nhau, miễn là nó vẫn tuân theo ba quy tắc ở trên (đáng chú ý, điều này có nghĩa là phải có cùng số lượng sự kiện như ví dụ).
Trong: UnderwaterBasketWeavingConvention 50 800 NSCC 500 550
Ra:UnderwaterBasketWeavingConvention
Trong: SconeEating 0 50 RegexSubbing 45 110 CodeGolfing 95 105 NSCC 100 200
Ra:SconeEating CodeGolfing
Trong: VelociraptorHunting 0 300 NerdSniping 200 500 SEChatting 400 700 DoorknobTurning 650 750 NSCC 725 775
Ra:NerdSniping DoorknobTurning
Trong: NSCC 110 115 A 100 120 B 120 140 C 105 135 D 100 105 E 135 500
Ra:C D E
Trong: A 800 900 NSCC 700 1000 B 650 750 C 950 1050 D 655 660 E 660 665 F 1030 1040 G 1040 1060
Ra:A D E F G
Trong: A 10 11 B 11 12 C 12 13 D 13 14 NSCC 15 1090 E 10 16
Ra:E
Vui lòng thêm nhiều trường hợp thử nghiệm trong một chỉnh sửa nếu có các trường hợp cạnh mà tôi bỏ lỡ.
Quy tắc
Mã của bạn phải hoàn thành trong vòng 30 giây cho tất cả các trường hợp thử nghiệm được cung cấp (đây là phần kiểm tra độ tỉnh táo hơn, vì có lẽ nó sẽ hoàn thành nhanh hơn nhiều cho tất cả các trường hợp thử nghiệm được kết hợp) trên một máy cá nhân hợp lý.
Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte sẽ thắng.

underwaterBasketWeavingConvention 50 800 nscc 550thay vì ví dụ của bạn?