{"trustable":true,"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":"\u003cdiv class\u003d\"panel_content\"\u003e最近,茶树获得了新的知识 gcd(最大公约数),现在她想要测试你。\u003cbr\u003e我们知道,茶树是一棵树,她的根节点是节点 1,她有 n 个节点和 n-1 条边,对于每个节点 i,它有它的值 v[i]。\u003cbr\u003e对于任意两个节点 i 和 j(i 不等于 j),它们会告诉它们的最低共同祖先(LCA)一个数字:gcd(v[i],v[j])。\u003cbr\u003e对于每个节点,你需要计算它听到的最大数字。一些定义:\u003cbr\u003e在图论和计算机科学中,树中两个节点 u 和 v 的最低共同祖先(LCA)是具有 u 和 v 作为后代的最低(最深)节点,其中我们将每个节点定义为其自身的后代。\u003c/div\u003e"}},{"title":"输入","value":{"format":"HTML","content":"第一行是一个正整数 n,描述节点的数量。\u003cbr\u003e接下来一行有 n-1 个正整数 f[2] ,f[3], …, f[n],f[i] 描述节点 i 在树中的父节点。\u003cbr\u003e再下一行有 n 个正整数 v[2] ,v[3], …, v[n],v[i] 描述节点 i 的值。\u003cbr\u003en≤100000, f[i]\u003ci, v[i]≤100000"}},{"title":"输出","value":{"format":"HTML","content":"你的输出应包括 n 行,对于第 i 行,输出节点 i 听到的最大数字。\u003cbr\u003e对于没有听到任何信息的节点,输出 -1。"}},{"title":"示例","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\u003e4\r\n1 1 3\r\n4 1 6 9\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e2\r\n-1\r\n3\r\n-1\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}}]}