CF1481C Fence Painting

题目描述

你终于从那个疯狂的梦中醒来,决定出去走走清醒一下头脑。你看到自家院子的围栏——如此单调无趣,你想要重新粉刷它。 你有一个由 $n$ 块木板组成的围栏,第 $i$ 块木板的颜色为 $a_i$。你希望将围栏重新粉刷成你想要的样子,即第 $i$ 块木板的颜色为 $b_i$。 为此你请来了 $m$ 位油漆工。第 $j$ 位油漆工会在第 $j$ 个时刻到达,并且会将恰好一块木板刷成颜色 $c_j$。对于每一位油漆工,你可以选择让他刷哪一块木板,但你不能拒绝他们,也就是说每位油漆工必须刷恰好一块木板。 你能否将围栏粉刷成你想要的颜色 $b$?如果可以,请输出每位油漆工应该刷哪一块木板。

输入格式

第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。接下来是 $t$ 组测试用例。 每个测试用例的第一行包含两个整数 $n$ 和 $m$($1 \le n, m \le 10^5$),分别表示围栏的木板数量和油漆工数量。 每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le n$),表示围栏初始的颜色。 每个测试用例的第三行包含 $n$ 个整数 $b_1, b_2, \dots, b_n$($1 \le b_i \le n$),表示你想要的颜色。 每个测试用例的第四行包含 $m$ 个整数 $c_1, c_2, \dots, c_m$($1 \le c_j \le n$),表示每位油漆工带来的油漆颜色。 保证所有测试用例中 $n$ 的总和不超过 $10^5$,$m$ 的总和也不超过 $10^5$。

输出格式

对于每个测试用例,如果无法将围栏粉刷成你想要的颜色 $b$,输出 "NO"。 否则,输出 "YES" 和 $m$ 个整数 $x_1, x_2, \dots, x_m$,其中 $x_j$ 表示第 $j$ 位油漆工应该刷的木板编号。 你可以用任意大小写输出字母(例如 "yEs"、"yes"、"Yes" 和 "YES" 都视为正确答案)。

说明/提示

由 ChatGPT 4.1 翻译