2038 : Maintain
Problem type : Batch
Time limit : 1.0 second(s)
Memory limit : 64 megabyte(s)

วัวของชาวนาจอห์นต้องการที่จะเดินทางไปยังจุด N ( 1 < N < 200 ) จุดบนฟาร์ม แม้ว่าแต่ละจุดจะถูกแบ่งแยกกันด้วยป่า  วัวเหล่านั้นต้องการที่จะเลือกรักษาเส้นทางระหว่างคู่ของจุดเพื่อว่าพวกมันสามารถที่จะเดินทางไปยังจุดใดๆก็ได้บนฟาร์ม   มันสามารถเดินทางบนถนนได้ในทิศทางใดก็ได้

ทุกสัปดาห์ วัวเหล่านี้จะค้นพบเส้นทางใหม่ขึ้น 1 ทาง และมันจะต้องตัดสินใจเลือกรักษาเส้นทางจำนวนหนึ่ง (จากเซตของเส้นทางทั้งหมดที่มันเคยรู้จัก) มาเพื่อที่จะใช้ในสัปดาห์นั้น

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

เส้นทางเหล่านี้ไม่ได้เป็นเส้นตรง ดังนั้นมันไม่แปลกที่วัวจะค้นพบเส้นทางระหว่างคู่จุดเดิมที่มีระยะทางน้อยกว่าเดิม และเส้นทางเหล่านี้อาจจะตัดกันได้ แต่วัวเหล่านี้เป็นวัวที่มุ่งมั่นพวกมันจึงปฏิเสธที่จะเปลี่ยนเส้นทางระหว่างที่มันกำลังเดินอยู่

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

INPUT

บรรทัดแรกประกอบด้วยจำนวนเต็ม N และ W แทนจำนวนจุด และจำนวน สัปดาห์ ( 1 < W < 6000 )

ต่อมา W บรรทัดจะประกอบด้วยจำนวนเต็ม 3 จำนวน โดย 2 จำนวนแรกจะเป็นคู่ของจุดที่เส้นทางนั้นเชื่อม และ Z แทนความยาวของเส้นทางนั้น ( 1 < Z < 10 000 )

OUTPUT

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

 

ที่มา: International Olympiad In Informatics 2003, USA (http://olympiads.win.tue.nl/ioi/ioi2003/contest/day1/maintain/maintain.pdf)

 


ตัวอย่างข้อมูลนำเข้า ตัวอย่างข้อมูลส่งออก
4 6
1 2 10
1 3 8
3 2 3
1 4 3
1 3 6
2 1 2
-1
-1
-1
14
12
8

ความช่วยเหลือ: ไม่มีคำใบ้สำหรับปัญหานี้

กำลังออนไลน์: 17 ผู้เยี่ยมชมและ 3 สมาชิก (0 บอท)