比赛 |
EYOI与SBOI开学欢乐赛3rd |
评测结果 |
AAATEEEEEE |
题目名称 |
异或加密 |
最终得分 |
30 |
用户昵称 |
op_组撒头屯 |
运行时间 |
4.492 s |
代码语言 |
C++ |
内存使用 |
138.64 MiB |
提交时间 |
2022-09-05 19:36:51 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n, a[100010], b[100010], vis[2][5010][5010], xans[5010], sum[5010];
map<int, int> id;
int main() {
freopen("XORcipher.in", "r", stdin);
freopen("XORcipher.out", "w", stdout);
cin >> n;
for(int i = 1; i <= n; i ++) {
cin >> a[i];
}
for(int i = 1; i <= n; i ++) {
cin >> b[i];
}
for(int i = 1; i <= n; i ++) {
xans[i] = a[1] ^ b[i];
id[xans[i]] = i;
vis[0][i][1] = 1;
vis[1][i][i] = 1;
sum[i] ++;
// cout << id[xans[i]] << ' ' << xans[i] << ' ';
}
// cout << endl << endl;
for(int i = 1; i <= n; i ++) {
for(int j = 1; j <= n; j ++) {
int x = a[i] ^ b[j];
if(!id[x]) {
continue;
}
// cout << x << ' ' << id[x] << endl;
x = id[x];
if(vis[0][x][i] || vis[1][x][j]) {
continue;
}
// cout << xans[x] << ' ' << a[i] << ' ' << b[j] << endl;
vis[0][x][i] = 1;
vis[1][x][j] = 1;
sum[x] ++;
}
}
for(int i = 1; i <= n; i ++) {
// cout << sum[i] << endl;
if(sum[i] == n) {
cout << xans[i] << endl;
return 0;
}
}
return 0;
}