กำหนดเวลาที่ยุ่งที่สุด


9

ความท้าทายนี้ได้แรงบันดาลใจอย่างมากโดยการโพสต์นี้กองมากเกิน

ท้าทาย

ให้กลุ่มลูกค้าในแง่ของเมื่อพวกเขาเข้าห้องและเมื่อพวกเขาออกจากนั้นกำหนดระยะเวลาเมื่อห้องมีจำนวนคนสูงสุด ความละเอียดของเวลาควรเป็นนาที

ตัวอย่างเช่นถ้ามีสามลูกค้า8 - 10, 9 - 11, 10 - 12แล้วตอบที่ถูกต้องจะ9 - 11; ในช่วงเวลานี้มีลูกค้าสองคนในห้องซึ่งเป็นไปได้ที่ใหญ่ที่สุด

อินพุต

อินพุตจะเป็นรายการคู่ในบางรูปแบบ นั่นอาจเป็นรายการของ 2-tuples, รายการที่มีความยาวเท่ากันพร้อมกับอิลิเมนต์ interleaved ฯลฯ รูปแบบอินพุตที่เหมาะสม สามารถกำหนดเวลาในรูปแบบที่เหมาะสมได้ในเวลา 12 หรือ 24 ชั่วโมง คุณสามารถป้อนเวลาเป็นจำนวนนาทีก่อนเที่ยงคืน

เอาท์พุต

เอาต์พุตควรเป็นรายการคู่ในบางรูปแบบ แต่เอาต์พุตจะเข้มงวด เอาต์พุตไม่สามารถเป็นรายการแบบแบนได้จะต้องเป็นรายการของ 2-tuples หรือรายการของรายการ ฯลฯ เวลาสามารถส่งออกได้ในรูปแบบที่สมเหตุสมผลใด ๆ ในเวลา 12 หรือ 24 ชั่วโมง นอกจากนี้คุณยังสามารถแสดงเวลาเป็นจำนวนนาทีที่ผ่านมาเที่ยงคืน

ตัวอย่าง

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

คุณอาจคิดว่าครั้งที่สองในคู่จะเป็นครั้งแรกหลังจากเสมอ ช่วงเวลาจะไม่ทำงานจนถึงเที่ยงคืน


เกิดอะไรขึ้นถ้ามีหลายช่วงเวลา
แยกผลไม้

@ Challenger5 คุณหมายถึงอะไรในช่วงเวลาหลายช่วงเวลาอินพุตหรือเอาต์พุต?
HyperNeutrino

@HyperNeutrino เอาท์พุท
ผลไม้แยกแยะ

@ Challenger5 เพิ่มกรณีทดสอบขอบคุณ
HyperNeutrino

คือ09:00 - 10:00, 10:00 - 11:00การส่งออกที่ถูกต้องสำหรับกรณีการทดสอบครั้งแรก?
Leun Nun

คำตอบ:


4

Brachylogขนาด 25 ไบต์

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

ลองออนไลน์!

มีโครงสร้างที่ชัดเจนสำหรับคำตอบนี้ซึ่งจะชัดเจนยิ่งขึ้นถ้าคุณเขียนดังนี้:

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

น่าเสียดายที่คำสั่งประเมินของ Brachylog ทำให้โปรแกรมเข้าสู่วงวนไม่สิ้นสุดหากคุณพยายามใช้ประโยชน์จากโครงสร้างที่เป็นปัญหา ถึงกระนั้นก็เป็นไปได้ที่จะจินตนาการภาษา Brachylog ที่สั้นกว่ามาก




0

Pyth , 33 24 ไบต์

JsrMQcSs-M_BhMBS{.M/JZJ2

ลองออนไลน์!


เรื่องนี้ดูเหมือนจะทำตัวไม่ถูกต้องสำหรับการนี้ ฉันจะเพิ่มสิ่งนี้เป็นกรณีทดสอบลงในคำถามเช่นกัน
HyperNeutrino

@HyperNeutrino แก้ไขแล้ว
Leun Nun

นั่นเป็นคำตอบที่รวดเร็ว งานที่ดี!
HyperNeutrino

0

Mathematica, 104 ไบต์

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

แน่นอนว่าสมมติว่าตัวสร้าง Mathematica พลังสูงหลายตัวนั้นถูกต้อง ...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.