Xác định thời gian bận rộn nhất


9

Thử thách này được lấy cảm hứng rất nhiều từ bài viết Stack Overflow này .

Thử thách

Đưa ra một nhóm khách hàng về thời điểm họ vào phòng và khi họ thoát ra, hãy xác định (các) khoảng thời gian khi phòng có số lượng người tối đa. Độ phân giải thời gian nên là phút.

Ví dụ, nếu có ba khách hàng 8 - 10, 9 - 11, 10 - 12, thì câu trả lời đúng sẽ là 9 - 11; trong khoảng thời gian này, có hai khách hàng trong phòng, đây là số lượng lớn nhất có thể.

Đầu vào

Đầu vào sẽ là một danh sách các cặp ở một số hình thức. Đó có thể là danh sách gồm 2 bộ, danh sách có độ dài chẵn với các phần tử xen kẽ, v.v., bất kỳ định dạng đầu vào hợp lý nào. Thời gian có thể được đưa ra ở bất kỳ định dạng hợp lý nào, trong thời gian 12 hoặc 24 giờ. Bạn cũng có thể nhập thời gian là số phút sau nửa đêm.

Đầu ra

Đầu ra phải là một danh sách các cặp ở một số dạng, nhưng đầu ra chặt chẽ hơn. Đầu ra không thể là một danh sách phẳng, nó phải là một danh sách gồm 2 bộ hoặc một danh sách các danh sách, v.v. Thời gian có thể được xuất ra ở bất kỳ định dạng hợp lý nào, trong thời gian 12 hoặc 24 giờ. Bạn cũng có thể xuất thời gian dưới dạng số phút sau nửa đêm.

Ví dụ

input
output

INPUT
08:00 - 10:00
09:00 - 11:00
10:00 - 12:00
OUTPUT
09:00 - 11:00

INPUT
08:20 - 09:20
09:00 - 09:10
08:00 - 09:30
08:50 - 10:40
OUTPUT
09:00 - 09:10

INPUT
08:00 - 10:00
09:00 - 10:00
09:30 - 11:00
OUTPUT
09:30 - 10:00 # The output is not always in the input list

INPUT
00:00 - 02:00
01:00 - 03:00
04:00 - 06:00
05:00 - 07:00
OUTPUT # This is the expected output for when there are multiple time ranges with the same "business".
01:00 - 02:00
05:00 - 06:00

Bạn có thể cho rằng lần thứ hai trong một cặp sẽ luôn là sau lần đầu tiên. Khoảng thời gian sẽ không chạy quá nửa đêm.


Nếu có nhiều khoảng thời gian thì sao?
Esolanging Fruit

@ Challenger5 Ý bạn là gì bởi nhiều khoảng thời gian, Đầu vào hoặc đầu ra?
HyperNeutrino

@HyperNeutrino Đầu ra.
Esolanging Fruit

@ Challenger5 Đã thêm một trường hợp thử nghiệm, cảm ơn.
HyperNeutrino

09:00 - 10:00, 10:00 - 11:00một đầu ra hợp lệ cho trường hợp thử nghiệm đầu tiên?
Nữ tu rò rỉ

Câu trả lời:


4

Brachylog , 25 byte

⟦₂ᵐkᵐcoḅlᵒlᵍthᵐ~c{~k~⟦₂}ᵐ

Hãy thử trực tuyến!

Có một cấu trúc rõ ràng cho câu trả lời này, điều này càng trở nên rõ ràng hơn nếu bạn viết nó như thế này:

{⟦₂k}ᵐc oḅ lᵒlᵍ thᵐ ~c{~k~⟦₂}ᵐ

Thật không may, thứ tự đánh giá của Brachylog khiến chương trình đi vào một vòng lặp vô hạn nếu bạn cố gắng tận dụng cấu trúc được đề cập. Tuy nhiên, chắc chắn có thể tưởng tượng một ngôn ngữ giống như Brachylog trong đó ngôn ngữ này ngắn hơn nhiều.





0

Toán học, 104 byte

Reduce[#==#~MaxValue~x,x]&@PiecewiseExpand@Tr[Piecewise@{{1,#<=x<#2}}&@@@#]/.{Or->List,a_<=x<b_->{a,b}}&

Tất nhiên, điều này giả định rằng một số tích hợp Mathicala công suất cao là chính xác ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.