F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

数据恢复

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65535/102400 K (Java/Others)
Total Submission(s): 116    Accepted Submission(s): 53


Problem Description
你是一名工程师,最近刚上线了一款数据迁移的软件。不幸的是,一个bug潜伏在你的代码之中。

假设要迁移的数据是一个长度为$n$的非负整数序列$a_1,a_2,\dots,a_n$,这个bug会随机产生一个在非负整数$k$,将每个$a_i$都变为$a_i\oplus k$,其中"$\oplus$"表示二进制下按位异或。在这一步之后,bug还会将序列$a$随机打乱。

你紧急上线了一款数据恢复的软件用于稳定用户,但是你还是需要定位出这个bug。如果知道$k$是多少的话,那么定位就简单多了。请写一个程序,给出原始序列和bug序列,找到bug产生的$k$。
 

Input
第一行包含一个正整数$T(1\leq T\leq 5)$,表示测试数据的组数。

每组数据第一行包含一个正整数$n(1\leq n\leq 100000)$,表示序列的长度。

第二行包含一个长度为$n$的非负整数序列$a_1,a_2,\dots,a_n(0\leq a_i\leq 10^9)$,表示原始序列。

第三行包含一个长度为$n$的非负整数序列$b_1,b_2,\dots,b_n(0\leq b_i\leq 10^9)$,表示被混淆后的序列。

为了贴近实际生产数据,数据是这样生成的:

先在$[0,10^9]$范围内随机生成出序列$a$,然后在$[0,10^9]$范围内随机生成出$k$,将每个$a_i$都异或$k$后再将序列$a$随机打乱得到$b$。
 

Output
对于每组数据输出一行一个整数,即$k$。如果有多个满足条件的$k$,请输出最小的。
 

Sample Input
1 3 995079375 799173665 950546684 139590094 526099731 482091296
 

Sample Output
670275055
 

Author
Claris
 

Source
 

Statistic | Submit | Discuss | Note
Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-05-11 21:22:48, Gzip enabled