คุณอาจเห็นสัญญาณเหล่านี้ที่ประตูของร้านค้าต่างๆ:
เวลาทำการ
จันทร์ - ศุกร์ 0900-1800
เสาร์ - อาทิตย์ 1100-1530
ภารกิจที่นี่คือการสร้างสัญญาณเช่นนั้นจัดกลุ่มวันติดต่อกันด้วยเวลาเปิดทำการเดียวกันจากรายการเวลาทำการตลอดทั้งสัปดาห์ โปรดทราบว่าสัปดาห์ "ล้อมรอบ" สำหรับสิ่งที่ถือว่าต่อเนื่องกัน
การป้อนข้อมูล:
- 7 องค์ประกอบซึ่งแสดงเวลาเปิดทำการของแต่ละวันในหนึ่งสัปดาห์เริ่มต้นด้วยวันจันทร์
- แต่ละองค์ประกอบเป็นสตริงบนฟอร์ม XXXX-XXXX
อินพุตตัวอย่าง:
0900-1800 0900-1800 0930-1730 0930-1730 0900-1500 1100-1500 1100-1500- มันก็โอเคที่จะส่งอินพุตเป็นอาร์เรย์ (เช่นอินพุทไปยังฟังก์ชั่นถ้าคุณไม่ได้อ่านจาก stdin)
เอาท์พุท:
- รายการของเวลาทำการที่วันติดต่อกันที่มีเวลาเปิดทำการเดียวกันแสดงเป็นช่วง โปรดทราบว่าวันอาทิตย์ (วันสุดท้าย) และวันจันทร์ (วันแรก) ก็เป็นวันที่ติดต่อกันเช่นกัน
- วันที่วันนั้นไม่มีเวลาทำการเหมือนกันกับวันก่อนหรือหลังถูกพิมพ์ด้วยตัวเอง
- วันที่ระบุไว้เป็นตัวอักษรตัวเล็กสามตัว: จันทร์อังคารพุธพฤหัสบดีเสาร์อาทิตย์
- โปรดจำไว้ว่าองค์ประกอบแรกในอินพุตที่สอดคล้องกับจันทร์ถัดจากอังคาร ฯลฯ
- เวลาเปิดทำการจะปรากฏในอินพุท
ตัวอย่างสองตัวอย่าง
mon-fri 0900-1800, sat-sun 1100-1500 mon-wed 1030-1530, thu 100-1800, fri-sun 1200-1630ควรเรียงลำดับผลลัพธ์ดังนั้นช่วงจะปรากฏตามลำดับวันในสัปดาห์ วันจันทร์เป็นที่ต้องการเป็นอันดับแรก แต่อาจเกิดขึ้นไม่ได้อยู่ในกลุ่มแรกเนื่องจากสัปดาห์ที่ผ่านมา ดังนั้นในกรณีนี้อ. เป็นช่วงแรก
tue-fri 0900-1800, sat-mon 1100-1500อย่ารวมกลุ่มยกเว้นติดต่อกันที่นี่วันพุธและวันศุกร์มีเวลาเปิดทำการเหมือนกัน แต่แยกจากวันพฤหัสบดีด้วยเวลาเปิดทำการที่แตกต่างกัน
mon-tue 1000-1200, wed 0900-1500, thu 1000-1800, fri 0900-1500, sat-sun 1000-1500- เอาต์พุตสามารถคั่นด้วยเครื่องหมายจุลภาคเป็นตัวอย่างที่นี่หรือคั่นด้วยบรรทัดใหม่ตามตัวอย่างด้านบน
กรณีทดสอบ
บรรทัดแรกคืออินพุตบรรทัดที่สองคือเอาต์พุตที่คาดไว้
0900-1800 0900-1800 0900-1800 0900-1800 0900-1800 1100-1500 1100-1500
mon-fri 0900-1800, sat-sun 1100-1500
0900-1800 0900-1800 0900-1800 0930-1700 0900-1800 1100-1500 1100-1500
mon-wed 0900-1800, thu 0930-1700, fri 0900-1800, sat-sun 1100-1500
1100-1500 0900-1800 0900-1800 0900-1800 0900-1800 1100-1500 1100-1500
tue-fri 0900-1800, sat-mon 1100-1500
1100-1500 1100-1500 0900-1800 0900-1800 0900-1800 0900-1800 1100-1500
wed-sat 0900-1800, sun-tue 1100-1500
1200-1500 1100-1500 0900-1800 0900-1800 0900-1800 0900-1800 1100-1500
mon 1200-1500, tue 1100-1500, wed-sat 0900-1800, sun 1100-1500
กฎระเบียบ
นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ