En yoğun zamanı belirleyin


9

Bu zorluk, bu Yığın Taşması gönderisinden büyük ölçüde ilham aldı .

Meydan okuma

Bir odaya ne zaman girecekleri ve odadan ne zaman çıkacakları açısından bir grup müşteri göz önüne alındığında, odanın maksimum sayıda kişiye sahip olacağı süreleri belirleyin. Zaman çözünürlüğü dakika olmalıdır.

Üç istemcilerin olup olmadığını Örneğin, 8 - 10, 9 - 11, 10 - 12, sonra doğru cevap olurdu 9 - 11; bu süre zarfında, odada mümkün olan en büyük iki müşteri vardır.

Giriş

Giriş, bazı biçimlerde çiftlerin bir listesi olacaktır. Bu, 2 parçalı bir liste, araya eklenmiş öğelerin bulunduğu çift uzunlukta bir liste, vb. Herhangi bir makul giriş biçimi olabilir. Zamanlar 12 veya 24 saatlik herhangi bir makul formatta verilebilir. Saati gece yarısından önceki dakika sayısı olarak da girebilirsiniz.

Çıktı

Çıktı, bir biçimde çiftlerin bir listesi olmalıdır, ancak çıktı daha katıdır. Çıktı düz bir liste olamaz, 2 parçalı bir liste ya da bir liste listesi vb. Olmalıdır. Süreler makul bir biçimde, 12 ya da 24 saatlik bir sürede verilebilir. Ayrıca zamanı gece yarısı geçen dakika sayısı olarak da çıkarabilirsiniz.

Örnekler

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

Bir çiftteki ikinci zamanın her zaman ilk seferden sonra olacağını varsayabilirsiniz. Zaman aralıkları gece yarısı çalışmaz.


Birden fazla zaman aralığı varsa ne olur?
Esolanging Fruit

@ Challenger5 Giriş veya çıkış çoklu zaman aralıklarıyla ne demek istediniz?
HyperNeutrino

@HyperNeutrino Çıkışı.
Esolanging Fruit

@ Challenger5 Bir test vakası eklendi, teşekkürler.
HyperNeutrino

09:00 - 10:00, 10:00 - 11:00İlk test durumu için geçerli bir çıktı mı ?
Sızdıran Rahibe

Yanıtlar:


4

Brachylog , 25 bayt

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

Çevrimiçi deneyin!

Bu cevabın, böyle yazdığınızda daha da belirgin hale gelen bariz bir yapısı var:

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

Ne yazık ki, Brachylog'un değerlendirme sırası, söz konusu yapıdan yararlanmaya çalışırsanız, programın sonsuz bir döngüye girmesini sağlar. Yine de, bunun çok daha kısa olduğu Brachylog benzeri bir dil hayal etmek kesinlikle mümkündür.





0

Mathematica, 104 bayt

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

Tabii ki, bu birkaç yüksek güçlü Mathematica yerleşiklerinin doğru olduğunu varsayar ...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.