{"trustable":false,"prependHtml":"\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS-MML_HTMLorMML\" type\u003d\"text/javascript\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"HTML","content":"\u003cscript type\u003d\u0027text/x-mathjax-config\u0027\u003eMathJax.Hub.Config({tex2jax: { inlineMath: [[\u0027$\u0027,\u0027$\u0027]] } }); \u003c/script\u003e\n\u003cscript type\u003d\u0027text/javascript\u0027 src\u003d\u0027https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config\u003dTeX-AMS-MML_HTMLorMML\u0027\u003e\u003c/script\u003e\n\u003cscript type\u003d\u0027text/javascript\u0027\u003esetTimeout(function(){MathJax.Hub.Queue([\u0027Typeset\u0027, MathJax.Hub, \u0027left_view\u0027]);}, 2000);\u003c/script\u003e\n\u003cdiv class\u003d\"panel_content\"\u003e\n 在庆功宴上,被台阶折磨了几个小时的tgy决定为新大陆扫清障碍,拆除台阶。然而制作组的经费有限,无法把所有台阶都拆除,于是tgy想让你帮他计算需要拆除的最少台阶数,使得新大陆任意两区之间均存在不需要跨越台阶的路径(不一定要直接相通,间接抵达也可)\n \u003cbr\u003e \n\u003c/div\u003e"}},{"title":"Input","value":{"format":"HTML","content":"测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数 M、区域数目N ( \u0026lt; 100 );\u003cbr\u003e随后的 M 行对应区域间道路的台阶数,每行给出一对正整数,分别是两个区域的编号,以及两区之间道路的台阶数(也是正整数)。为简单起见,区域从1到N编号。当M为0时,全部输入结束,相应的结果不要输出。 \n\u003cbr\u003e"}},{"title":"Output","value":{"format":"HTML","content":"对每个测试用例,在1行里输出最少需要拆除的台阶数。若统计数据不足以保证联通,则输出“?”。 \n\u003cbr\u003e"}},{"title":"Sample Input","value":{"format":"HTML","content":"\u003cpre\u003e3 3\n1 2 1\n1 3 2\n2 3 4\n1 3\n2 3 2\n0 100\u003c/pre\u003e"}},{"title":"Sample Output","value":{"format":"HTML","content":"\u003cpre\u003e3\n?\u003c/pre\u003e"}}]}