fork download
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <math.h>
  4. #include <string.h>
  5. #include <time.h>
  6. #include <stdlib.h>
  7. #include <string>
  8. #include <bitset>
  9. #include <vector>
  10. #include <set>
  11. #include <map>
  12. #include <queue>
  13. #include <algorithm>
  14. #include <sstream>
  15. #include <stack>
  16. #include <iomanip>
  17. using namespace std;
  18. #define pb push_back
  19. #define mp make_pair
  20. typedef pair<int,int> pii;
  21. typedef long long ll;
  22. typedef double ld;
  23. typedef vector<int> vi;
  24. #define fi first
  25. #define se second
  26. #define fe first
  27. #define FO(x) {freopen(#x".in","r",stdin);freopen(#x".out","w",stdout);}
  28. #define Edg int M=0,fst[SZ],vb[SZ],nxt[SZ];void ad_de(int a,int b){++M;nxt[M]=fst[a];fst[a]=M;vb[M]=b;}void adde(int a,int b){ad_de(a,b);ad_de(b,a);}
  29. #define Edgc int M=0,fst[SZ],vb[SZ],nxt[SZ],vc[SZ];void ad_de(int a,int b,int c){++M;nxt[M]=fst[a];fst[a]=M;vb[M]=b;vc[M]=c;}void adde(int a,int b,int c){ad_de(a,b,c);ad_de(b,a,c);}
  30. #define es(x,e) (int e=fst[x];e;e=nxt[e])
  31. #define esb(x,e,b) (int e=fst[x],b=vb[e];e;e=nxt[e],b=vb[e])
  32. #define SZ 666666
  33. int T,n; Edg
  34. ll val[SZ],m[SZ],aa[SZ];
  35. void dfs(int x,int f=0)
  36. {
  37. int nl=0;
  38. for esb(x,e,b) if(b!=f)
  39. {
  40. ++nl; val[b]=__gcd(val[b],val[x]); dfs(b,x);
  41. }
  42. if(!nl||(nl==1&&x==1))
  43. val[x]=__gcd(val[x],m[x]),aa[x]=(m[x]-1)/val[x]*val[x];
  44. }
  45. void sol()
  46. {
  47. scanf("%d",&n); M=0;
  48. for(int i=1;i<=n;++i) fst[i]=0,aa[i]=-1;
  49. for(int i=1;i<n;++i)
  50. {
  51. int a,b;
  52. scanf("%d%d",&a,&b);
  53. adde(a,b);
  54. }
  55. for(int i=1;i<=n;++i)
  56. scanf("%lld",val+i);
  57. for(int i=1;i<=n;++i)
  58. scanf("%lld",m+i);
  59. dfs(1);
  60. for(int i=1;i<=n;++i)
  61. if(aa[i]!=-1)
  62. printf("%lld ",aa[i]);
  63. puts("");
  64. }
  65. int main()
  66. {
  67. scanf("%d",&T);
  68. while(T--) sol();
  69. }
  70.  
Success #stdin #stdout 0s 38672KB
stdin
Standard input is empty
stdout
Standard output is empty