#AT1795. C - Made Up

C - Made Up

C - 凑对

得分:300分

问题描述

给定三个长度为$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$到$N$之间(包括$1$和$N$)。

有多少个整数对$(i, j)$满足$A_i = B_{C_j}$?

约束

  • $1 \leq N \leq 10^5$
  • $1 \leq A_i, B_i, C_i \leq N$
  • 所有输入的值都是整数。

输入

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

NN

A1A_1 A2A_2 \ldots ANA_N

B1B_1 B2B_2 \ldots BNB_N

C1C_1 C2C_2 \ldots CNC_N

输出

输出满足条件$A_i = B_{C_j}$的整数对$(i, j)$的数量。


3
1 2 2
3 1 2
2 3 2
4

满足条件的整数对有4个:$(1, 1), (1, 3), (2, 2), (3, 2)$。


4
1 1 1 1
1 1 1 1
1 2 3 4
16

所有的整数对都满足条件。


3
2 3 3
1 3 3
1 1 1
0

没有整数对满足条件。