atcoder#ARC156F. [ARC156F] Make Same Set

[ARC156F] Make Same Set

题目描述

長さ N N の整数列 $ A=(A_1,A_2,\dots,A_N),B=(B_1,B_2,\dots,B_N),C=(C_1,C_2,\dots,C_N) $ が与えられます。

整数からなる集合のうち、以下の条件を満たすものを 1 1 つ求めてください。

  • 空集合に対し i=1,2,,N i=1,2,\dots,N の順に Ai,Bi A_i,B_i のいずれかを追加していくことで得られる集合である。
  • 空集合に対し i=1,2,,N i=1,2,\dots,N の順に Ai,Ci A_i,C_i のいずれかを追加していくことで得られる集合である。
  • 上記の 2 2 つの条件を満たす集合の中で、要素数が最大である。

输入格式

入力は以下の形式で標準入力から与えられる。

N N A1 A_1 A2 A_2 \dots AN A_N B1 B_1 B2 B_2 \dots BN B_N C1 C_1 C2 C_2 \dots CN C_N

输出格式

条件を満たす整数集合の要素数 k k と、整数集合の k k 個の要素 xi (1 i  k) x_i\ (1\leq\ i\ \leq\ k) を以下の形式で出力せよ。

k k x1 x_1 x2 x_2 \dots xk x_k

条件を満たす整数集合が複数存在する場合、いずれを出力してもかまわない。

题目大意

给出三个长度为 nn 的序列 A,B,CA,B,C,找到一个符合下述条件的集合 SS

  • 其可以被这样生成:枚举 i=1,...,ni=1,...,n,并将 AiA_iBiB_i 加入集合。

  • 其可以被这样生成:枚举 i=1,...,ni=1,...,n,并将 AiA_iCiC_i 加入集合。

  • 在满足上述条件的情况下,这个集合的大小尽可能大。

求出这个最大的大小并输出一个合法的 SS

n5000,Ai,Bi,Ci10000n\le 5000,A_i,B_i,C_i\le 10000

3
1 1 1
2 3 4
5 4 2
3
4 1 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
12
7 9 11 17 19 1 15 4 5 6 29 13

提示

制約

  • 1  N  5000 1\ \leq\ N\ \leq\ 5000
  • 1  Ai,Bi,Ci  10000 1\ \leq\ A_i,B_i,C_i\ \leq\ 10000
  • 入力される値はすべて整数

Sample Explanation 1

集合 { 1,2,4} \lbrace\ 1,2,4\rbrace は - 1 1 番目の条件について、空集合に B1,A2,B3 B_1,A_2,B_3 を追加することで得られます。 - 2 2 番目の条件について、空集合に A1,C2,C3 A_1,C_2,C_3 を追加することで得られます。 条件を満たす集合の要素数は明らかに N=3 N=3 以下であるため、この集合は 3 3 番目の条件も満たしています。