#CF1957F2. Frequency Mismatch(困难版)

Frequency Mismatch(困难版)

Frequency Mismatch(困难版)

  • 时间限制:5 秒
  • 内存限制:512 MiB

题目描述

给定一棵有 nn 个节点的无向树,每个节点 vv 上写有一个值 ava_v。你需要回答若干询问。

每次询问给出 u1,v1,u2,v2,ku_1,v_1,u_2,v_2,k。设 xcx_c 为值 cc 在路径 u1v1u_1\to v_1 上的出现次数,ycy_c 为值 cc 在路径 u2v2u_2\to v_2 上的出现次数。如果共有 zz 个不同的值 cc 满足 xcycx_c\ne y_c,请输出任意 min(z,k)\min(z,k) 个这样的值,顺序不限。

这是困难版本,其中 kk 的上限为 1010

输入格式

第一行一个整数 nn

第二行 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n

接下来 n1n-1 行,每行两个整数 u,vu,v,表示树中的一条边。

接下来一行一个整数 qq,表示询问数。

接下来 qq 行,每行五个整数 u1,v1,u2,v2,ku_1,v_1,u_2,v_2,k

输出格式

对每次询问输出一行。先输出 min(z,k)\min(z,k),再输出任意这么多个在两条路径中出现次数不同的值。所选值必须互不相同,顺序不限。

样例输入 1

5
5 2 3 4 3
1 2
1 3
2 4
2 5
4
1 4 4 5 3
2 3 2 3 1
1 4 4 5 1
5 5 4 3 10

样例输出 1

2 3 5
0
1 5
3 5 2 4

数据范围

对于所有数据:

  • 1n,q1051\le n,q\le 10^5
  • 1ai1051\le a_i\le 10^5
  • 1u1,v1,u2,v2n1\le u_1,v_1,u_2,v_2\le n
  • 1k101\le k\le 10
  • 输入边构成一棵树。
子任务编号 分值 特殊限制
1 20 n,q200n,q\le 200,且 ai1000a_i\le 1000
2 40 q2000q\le 2000,且 ai1000a_i\le 1000
3 无特殊限制

每个测试点独立计分。

说明

样例的第一组路径值多重集分别为 {5,2,4}\{5,2,4\}{4,2,3}\{4,2,3\},因此 3355 的出现次数不同。输出可以选择任意满足要求的值,不必与样例一致。