{"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 You are given a tree (an acyclic undirected connected graph) with N nodes. The tree nodes are numbered from 1 to N \n \u003cbr\u003e \n \u003cbr\u003e There are N - 1 edges numbered from 1 to N - 1. \n \u003cbr\u003e \n \u003cbr\u003e Each node has a value and each edge has a value. The initial value is 0. \n \u003cbr\u003e \n \u003cbr\u003e There are two kind of operation as follows: \n \u003cbr\u003e \n \u003cbr\u003e ● ADD1 u v k: for nodes on the path from u to v, the value of these nodes increase by k. \n \u003cbr\u003e \n \u003cbr\u003e ● ADD2 u v k: for edges on the path from u to v, the value of these edges increase by k. \n \u003cbr\u003e \n \u003cbr\u003e After finished M operation on the tree, please output the value of each node and edge. \n\u003c/div\u003e\n一棵N个节点的树。ADD1表示把路径上的点权都增加k。\u003c/br\u003e\nADD2表示把路径上的边权都增加k。初始的权值都是0"}},{"title":"Input","value":{"format":"HTML","content":"The first line of the input is T (1 ≤ T ≤ 20), which stands for the number of test cases you need to solve. \n\u003cbr\u003e \n\u003cbr\u003e The first line of each case contains two integers N ,M (1 ≤ N, M ≤10 \n\u003csup\u003e5\u003c/sup\u003e),denoting the number of nodes and operations, respectively. \n\u003cbr\u003e \n\u003cbr\u003e The next N - 1 lines, each lines contains two integers u, v(1 ≤ u, v ≤ N ), denote there is an edge between u,v and its initial value is 0. \n\u003cbr\u003e \n\u003cbr\u003e For the next M line, contain instructions “ADD1 u v k” or “ADD2 u v k”. (1 ≤ u, v ≤ N, -10 \n\u003csup\u003e5\u003c/sup\u003e ≤ k ≤ 10 \n\u003csup\u003e5\u003c/sup\u003e)\n第一行一个整数T,表示数据组数。\u003c/br\u003e\n接下来一行两个整数n和m,表示树的大小和操作次数。\u003c/br\u003e\n接下来m行,每行一个操作。"}},{"title":"Output","value":{"format":"HTML","content":"For each test case, print a line “Case #t:”(without quotes, t means the index of the test case) at the beginning. \n\u003cbr\u003e \n\u003cbr\u003e The second line contains N integer which means the value of each node. \n\u003cbr\u003e \n\u003cbr\u003e The third line contains N - 1 integer which means the value of each edge according to the input order.\n先输出case编号;\u003c/br\u003e\n接下来一行输出n个点的权值。\u003c/br\u003e\n再输出一行n-1边的权值,边输出按照输入的顺序\u003c/br\u003e\n\u003cb\u003e注意行末没有空格\u003c/b\u003e。"}},{"title":"Sample Input","value":{"format":"HTML","content":"\u003cpre\u003e2\n4 2\n1 2\n2 3\n2 4\nADD1 1 4 1\nADD2 3 4 2\n4 2\n1 2\n2 3\n1 4\nADD1 1 4 5\nADD2 3 2 4\u003c/pre\u003e"}},{"title":"Sample Output","value":{"format":"HTML","content":"\u003cpre\u003eCase #1:\n1 1 0 1\n0 2 2\nCase #2:\n5 0 0 5\n0 4 0\u003c/pre\u003e"}}]}