{"trustable":true,"prependHtml":"\u003cstyle type\u003d\u0027text/css\u0027\u003e\n .input, .output {\n border: 1px solid #888888;\n }\n .output {\n margin-bottom: 1em;\n position: relative;\n top: -1px;\n }\n .output pre, .input pre {\n background-color: #EFEFEF;\n line-height: 1.25em;\n margin: 0;\n padding: 0.25em;\n }\n \u003c/style\u003e\n \u003clink rel\u003d\"stylesheet\" href\u003d\"//codeforces.org/s/96598/css/problem-statement.css\" type\u003d\"text/css\" /\u003e\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 type\u003d\"text/javascript\" async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS_HTML-full\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"HTML","content":"\u003cp\u003eBạn được cho một đồ thị vô hướng có trọng số \u003cspan class\u003d\"tex-font-style-bf\"\u003ekết nối\u003c/span\u003e, bao gồm $$$n$$$ đỉnh và $$$m$$$ cạnh.\u003c/p\u003e\u003cp\u003eBạn cần trả lời $$$q$$$ truy vấn, truy vấn thứ $$$i$$$ là tìm khoảng cách ngắn nhất giữa các đỉnh $$$u_i$$$ và $$$v_i$$$.\u003c/p\u003e"}},{"title":"Nhập","value":{"format":"HTML","content":"\u003cp\u003eDòng đầu tiên chứa hai số nguyên $$$n$$$ và $$$m~(1 \\le n, m \\le 10^5, m - n \\le 20)$$$ — số đỉnh và số cạnh trong đồ thị.\u003c/p\u003e\u003cp\u003eTiếp theo là $$$m$$$ dòng chứa các cạnh: cạnh thứ $$$i$$$ là một bộ ba số nguyên $$$v_i, u_i, d_i~(1 \\le u_i, v_i \\le n, 1 \\le d_i \\le 10^9, u_i \\neq v_i)$$$. Bộ ba số này có nghĩa là có một cạnh giữa các đỉnh $$$u_i$$$ và $$$v_i$$$ có trọng số $$$d_i$$$. Đảm bảo rằng đồ thị không chứa vòng lặp tự thân và nhiều cạnh.\u003c/p\u003e\u003cp\u003eDòng tiếp theo chứa một số nguyên đơn $$$q~(1 \\le q \\le 10^5)$$$ — số lượng truy vấn.\u003c/p\u003e\u003cp\u003eMỗi trong số $$$q$$$ dòng tiếp theo chứa hai số nguyên $$$u_i$$$ và $$$v_i~(1 \\le u_i, v_i \\le n)$$$ — mô tả các truy vấn.\u003c/p\u003e\u003cp\u003e\u003cspan class\u003d\"tex-font-style-bf\"\u003eChú ý đến ràng buộc $$$m - n ~ \\le ~ 20$$$.\u003c/span\u003e\u003c/p\u003e"}},{"title":"Đầu ra","value":{"format":"HTML","content":"\u003cp\u003eIn $$$q$$$ dòng.\u003c/p\u003e\u003cp\u003eDòng thứ $$$i$$$ nên chứa câu trả lời cho truy vấn thứ $$$i$$$ — khoảng cách ngắn nhất giữa các đỉnh $$$u_i$$$ và $$$v_i$$$.\u003c/p\u003e"}},{"title":"Ví dụ 1","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e3 3\n1 2 3\n2 3 1\n3 1 5\n3\n1 2\n1 3\n2 3\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e3\n4\n1\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"Ví dụ 2","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e8 13\n1 2 4\n2 3 6\n3 4 1\n4 5 12\n5 6 3\n6 7 8\n7 8 7\n1 4 1\n1 8 3\n2 6 9\n2 7 1\n4 6 3\n6 8 2\n8\n1 5\n1 7\n2 3\n2 8\n3 7\n3 4\n6 8\n7 8\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e7\n5\n6\n7\n7\n1\n2\n7\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}}]}