2711: 建造

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:6 解决:5

题目描述

在小头在还在为老师的难题绞尽脑汁时,幸福的小明开始了最爱玩的经营类游戏——模拟城市4。在游戏中有n个城市,用编号1..n表示,他希望建造若干条道路来改善交通(初始时不存在任何道路)。

小明拟定了m条道路的计划,每条道路连接城市xy,路是双向的,道路的安全程度为p,道路价值为c。小明是这样开始游戏的:他每次选择一条道路建造,如果建完后城市之间存在一个环,则删去环中安全值最小的道路(如果有多条路安全值一样,则删去最晚建造的那条)

小明希望能够确定一个建造顺序,使得最后剩下的道路的价值和最大。

虽然这个问题要比小头遇到的问题简单不少,但是考虑到小明的智商……所以还需要聪明的你出马

 

输入

第一行二个正整数nm

接下来2-m+1

i行四个正整数,xypc依次表示第(i-1)条道路连接的城市、安全程度和道路价值。

数据保证两个城市之间最多只有一条道路,且没有自环。

 

输出

两行

第一行一个整数表示最大的价值和

第二行是一个1m的排列,即表示建造道路的顺序,两个数之间用一个空格表示,行末无空格。若有多组解输出字典序最小的那组。

 

样例输入 复制

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