ทำให้แผนที่การตัดสินใจของฉันเป็นปกติ


11

เขียนฟังก์ชันหรือโปรแกรมที่ประมวลผลบล็อกข้อความและส่งคืนข้อความใหม่ โปรแกรมที่ถูกต้องที่เล็กที่สุดชนะ

แต่ละบรรทัดในบล็อกข้อความจะมีรูปแบบต่อไปนี้:

12:34,56

หมายเลขแรกคือ ID บรรทัดส่วนอีกสองหมายเลขคั่นด้วยเครื่องหมายจุลภาคเป็นการอ้างอิงถึงบรรทัดอื่น

ในข้อความอินพุตตัวเลขสามารถเป็นจำนวนเต็มใด ๆ ที่มากกว่าหรือเท่ากับ 0 ตัวเลขทั้งหมดจะเป็นทศนิยมทศนิยม ASCII ที่ไม่มีเลขศูนย์นำหน้า จะไม่มีรหัสบรรทัดที่ซ้ำกัน จะไม่มีการอ้างอิงถึง ID บรรทัดที่ไม่มีอยู่แม้ว่าอาจมี ID บรรทัดที่ไม่ได้อ้างอิง

ในข้อความเอาต์พุตบรรทัดที่มีหมายเลขต่ำสุดจะถูกย้ายไปที่จุดเริ่มต้นของบล็อกข้อความและกำหนดหมายเลขใหม่เป็น 0 การอ้างอิงใด ๆ กับบรรทัดนี้ต้องถูกอัพเดตด้วย การอ้างอิงแรกในบรรทัดนั้นต้องเป็น 0 หรือ 1 การอ้างอิงที่สองสามารถเป็น 2 ได้หากการอ้างอิงแรกคือ 1 มิฉะนั้นจะต้องเป็น 0 หรือ 1

บรรทัดทั้งหมดต้องอยู่ในลำดับขึ้นและลง (ไม่มีตัวเลขที่ข้าม) คุณสามารถมีการอ้างอิงถึงบรรทัด n เท่านั้นหากมีการอ้างอิงก่อนหน้าไปที่บรรทัด n-1 หรือ ID บรรทัดปัจจุบันคือ n ต้องไม่มีบรรทัดที่ไม่ได้อ้างอิงโดย ID บรรทัดล่างยกเว้นบรรทัด 0 บรรทัดใด ๆ ดังกล่าวจะต้องถูกลบออกก่อนเอาต์พุตสุดท้าย

คุณอาจคิดว่าข้อความที่ป้อนนั้นอยู่ในรูปแบบที่ถูกต้องเสมอ

ทดสอบอินพุต # 1:

45:73,24
78:24,78
89:24,73
73:45,3
72:3,24
3:24,24
24:3,89

จัดลำดับใหม่:

3:24,24
24:3,89
89:24,73
73:45,3
45:73,24
78:24,78
72:3,24

ลำดับที่:

0:1,1
1:0,2
2:1,3
3:4,0
4:3,1
78:1,78
72:0,1

ลบบรรทัดที่ไม่มีการอ้างอิงสำหรับเอาต์พุตสุดท้าย:

0:1,1
1:0,2
2:1,3
3:4,0
4:3,1

แน่นอนโปรแกรมของคุณไม่จำเป็นต้องทำตามคำสั่งนี้เพียงแค่สร้างผลลัพธ์ที่ถูกต้อง ผลลัพธ์จะต้องเป็นบล็อกข้อความเดียวหรือใกล้เคียงที่สุดในภาษาของคุณนั่นคือไม่มีอักขระจากเอาต์พุตโดยตรงของอักขระ คุณสามารถส่งคืนมัน (ที่ต้องการ) หรือส่งออกทั้งบล็อกโดยตรง สมมติว่าเอาต์พุตของคุณจะถูกส่งไปยังฟังก์ชันหรือโปรแกรมอื่น

ทดสอบอินพุต # 2

5:2,3
7:3,2
2:4,2
4:2,3
3:4,3

เอาท์พุท:

0:1,0
1:0,2
2:1,2

ทดสอบอินพุต # 3

7:6,3
3:9,7
9:7,3
2:9,6
6:6,7

เอาท์พุท:

0:1,2
1:3,4
2:2,3
3:2,4
4:1,3

คำตอบ:


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