บทนำ
ในความท้าทายนี้คุณจะได้รับกราฟกำกับด้วยการวนรอบตัวเองและงานของคุณคือการแปลงให้เป็นกราฟที่ไม่ได้เปลี่ยนทิศทางโดยไม่มีการวนรอบเอง
อินพุต
การป้อนข้อมูลของคุณเป็นกราฟกำกับโดยมีการตั้งค่าจุดยอด{0, 1, ..., n-1}
สำหรับจำนวนธรรมชาติn ≥ 0
(หรือ{1, 2, ..., n}
ถ้าคุณใช้การจัดทำดัชนีแบบ 1) กราฟจะได้รับเป็น length- n
รายการL
ที่เป็นรายการของออกจากเพื่อนบ้านของจุดสุดยอดL[i]
i
ตัวอย่างเช่นรายการ[[0,1],[0],[1,0,3],[]]
แสดงกราฟ
.-.
| v
'-0<--2-->3
^ |
| |
v |
1<--'
โปรดทราบว่ารายชื่อเพื่อนบ้านไม่จำเป็นต้องสั่งซื้อ แต่รับประกันว่าจะไม่ซ้ำซ้อน
เอาท์พุต
เอาต์พุตของคุณเป็นกราฟอื่นในรูปแบบเดียวกับอินพุตที่ได้จากกราฟดังต่อไปนี้
- ลบการวนซ้ำทั้งหมด
- สำหรับแต่ละขอบที่เหลือ
u -> v
ให้เพิ่มขอบที่กลับด้านv -> u
ถ้ายังไม่มีอยู่
เช่นเดียวกับอินพุตรายการเพื่อนบ้านของกราฟผลลัพธ์อาจไม่ได้เรียงลำดับ แต่พวกเขาไม่สามารถมีรายการซ้ำได้ สำหรับกราฟด้านบนเอาต์พุตที่ถูกต้องจะเป็น[[1,2],[0,2],[0,1,3],[2]]
ซึ่งแทนกราฟ
0<->2<->3
^ ^
| |
v |
1<--'
กฎระเบียบ
คุณสามารถใช้การจัดทำดัชนีตาม 0 หรือ 1 ในกราฟ ทั้งฟังก์ชั่นและโปรแกรมเต็มรูปแบบเป็นที่ยอมรับ จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต
กรณีทดสอบ
กรณีทดสอบเหล่านี้ใช้การจัดทำดัชนีแบบ 0 เพิ่มแต่ละหมายเลขในกรณีที่ใช้ 1 รายการเพื่อนบ้านเหล่านี้เรียงตามลำดับจากน้อยไปมาก แต่ไม่จำเป็น
[] -> []
[[0]] -> [[]]
[[],[0,1]] -> [[1],[0]]
[[0,1],[]] -> [[1],[0]]
[[0,1],[0],[1,0,3],[]] -> [[1,2],[0,2],[0,1,3],[2]]
[[3],[],[5],[3],[1,3],[4]] -> [[3],[4],[5],[0,4],[1,3,5],[2,4]]
[[0,1],[6],[],[3],[3],[1],[4,2]] -> [[1],[0,5,6],[6],[4],[3,6],[1],[1,2,4]]
[[6],[0,5,1],[5,4],[3,5],[4],[5,6],[0,3]] -> [[1,6],[0,5],[4,5],[5,6],[2],[1,2,3,6],[0,3,5]]
[[1,0],[5,1],[5],[1],[5,7],[7,1],[],[1]] -> [[1],[0,3,5,7],[5],[1],[5,7],[1,2,4,7],[],[1,4,5]]
[[2,8,0,9],[5,2,3,4],[0,2],[3,7,4],[8,1,2],[5,1,9,2],[6,9],[6,5,2,9,0],[9,1,2,0],[3,9]] -> [[2,7,8,9],[2,3,4,5,8],[0,1,4,5,7,8],[1,4,7,9],[1,2,3,8],[1,2,7,9],[7,9],[0,2,3,5,6,9],[0,1,2,4,9],[0,3,5,6,7,8]]
.e
เป็นเพียงการเปลี่ยนจากk,Y
การk,b
เพื่อที่จะทำงานนี้ใช้.e-.|f}k@QTUQbkQ