2711: 建造
内存限制:256 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:6
解决:5
题目描述
在小头在还在为老师的难题绞尽脑汁时,幸福的小明开始了最爱玩的经营类游戏——模拟城市4。在游戏中有n个城市,用编号1..n表示,他希望建造若干条道路来改善交通(初始时不存在任何道路)。
小明拟定了m条道路的计划,每条道路连接城市x和y,路是双向的,道路的安全程度为p,道路价值为c。小明是这样开始游戏的:他每次选择一条道路建造,如果建完后城市之间存在一个环,则删去环中安全值最小的道路(如果有多条路安全值一样,则删去最晚建造的那条)
小明希望能够确定一个建造顺序,使得最后剩下的道路的价值和最大。
虽然这个问题要比小头遇到的问题简单不少,但是考虑到小明的智商……所以还需要聪明的你出马
输入
第一行二个正整数n,m
接下来2-m+1行
第i行四个正整数,x、y、p、c依次表示第(i-1)条道路连接的城市、安全程度和道路价值。
数据保证两个城市之间最多只有一条道路,且没有自环。
输出
两行
第一行一个整数表示最大的价值和
第二行是一个1到m的排列,即表示建造道路的顺序,两个数之间用一个空格表示,行末无空格。若有多组解输出字典序最小的那组。
样例输入 复制
4 4
1 2 1 1
2 4 1 2
1 3 1 2
3 4 3 1
样例输出 复制
5
2 3 1 4
提示
50%的数据n,m≤8
100%的数据n,m≤300; 0≤p,c≤100000