#arc156f. [arc156_f]Make Same Set

[arc156_f]Make Same Set

题目描述

给定三个长度为NN的整数序列:$A=(A_1,A_2,\\dots,A_N),B=(B_1,B_2,\\dots,B_N),C=(C_1,C_2,\\dots,C_N)$。

找到满足以下条件的整数集合。

  • 它可以通过以下方式得到:从一个空集合开始,按照顺序对于每个i=1,2,dots,Ni=1,2,\\dots,N,把AiA_iBiB_i加入到集合中。
  • 它可以通过以下方式得到:从一个空集合开始,按照顺序对于每个i=1,2,dots,Ni=1,2,\\dots,N,把AiA_iCiC_i加入到集合中。
  • 它在满足上述两个条件的所有集合中拥有最多的元素数目。

约束条件

  • 1N50001 \leq N \leq 5000
  • 1Ai,Bi,Ci100001 \leq A_i,B_i,C_i \leq 10000
  • 输入的所有值都是整数。

输入

输入以以下格式从标准输入给出:

NN

A1A_1 A2A_2 dots\\dots ANA_N

B1B_1 B2B_2 dots\\dots BNB_N

C1C_1 C2C_2 dots\\dots CNC_N

输出

打印整数集合满足条件的元素数目kk,以及集合中的元素xi (1ik)x_i\ (1\leq i \leq k),以以下格式给出:

kk

x1x_1 x2x_2 dots\\dots xkx_k

如果存在多个满足条件的集合,你可以输出任意一个。


示例输入1

3
1 1 1
2 3 4
5 4 2

示例输出1

3
4 1 2

对于集合lbrace1,2,4rbrace\\lbrace 1,2,4\\rbrace,我们有以下情况。

  • 第一个条件成立,因为你可以把B1,A2,B3B_1,A_2,B_3加入到空集合得到这个集合。
  • 第二个条件成立,因为你可以把A1,C2,C3A_1,C_2,C_3加入到空集合得到这个集合。

很明显,满足这些条件的集合最多有N=3N=3个元素,所以这个集合也满足第三个条件。


示例输入2

15
1 1 15 11 13 7 7 1 6 1 5 7 4 9 8
11 30 1 18 16 15 19 17 3 27 22 7 21 29 9
24 14 23 17 18 16 9 12 10 5 26 29 20 19 11

示例输出2

12
7 9 11 17 19 1 15 4 5 6 29 13