CF2131C.Make it Equal
普及-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定两个大小为 n 的多重集 S 和 T,以及一个正整数 k,你可以对 S 进行如下操作任意次(包括零次):
- 选择 S 中的一个元素 x,移除 S 中的一个 x,然后可以将 x+k 或 ∣x−k∣ 插入到 S 中。
请判断是否有可能通过若干次操作使 S 等于 T。当且仅当 S 和 T 中每个元素出现的次数都相同,两个多重集才相等。
输入格式
每组测试数据包含多组测试用例。第一行为一个整数 t(1≤t≤104),表示测试用例的组数。每组测试用例描述如下:
第一行包含两个整数 n 和 k(1≤n≤2⋅105,1≤k≤109),分别表示 S 和 T 的大小以及常数 k。
第二行包含 n 个整数 S1,S2,…,Sn(0≤Si≤109),表示 S 中的元素。
第三行包含 n 个整数 T1,T2,…,Tn(0≤Ti≤109),表示 T 中的元素。
保证所有测试用例中 n 的总和不超过 2⋅105。
输出格式
对于每组测试用例,如果可以通过若干次操作使 S 等于 T,输出 "YES";否则输出 "NO"。
你可以用任意大小写输出答案(如 "yEs", "yes", "Yes", "YES" 都会被识别为肯定回答)。
输入输出样例
输入#1
5 1 3 1 2 1 8 4 12 3 5 6 2 9 8 4 11 2 7 2 8 2 9 3 2 0 1 0 1 0 1
输出#1
YES YES YES NO NO
说明/提示
在第一个测试用例中,我们可以从 S 中移除一个 1,并插入 ∣1−k∣=∣1−3∣=2,此时 S 就等于 T。
在第二个测试用例中,我们可以从 S 中移除一个 4,并插入 4+k=4+8=12,此时 S 就等于 T。
在最后一个测试用例中,可以证明无法通过操作使 S 等于 T。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?