题目链接:
http://codeforces.com/problemset/problem/869/A
题解:
直接map,炸了时间。以后还是老老实实写个find的函数。
心碎。
代码:
#include <map>
#include <cmath>
#include <vector>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
#define inf 0x3f3f3f3f
#define met(a,b) memset(a,b,sizeof(a))
typedef long long ll;
const int maxn = 2000+10;
int num1[maxn],num2[maxn];
map<int,int> mp;
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&num1[i]);
mp[num1[i]]++;
}
for(int i=0;i<n;i++)
{
scanf("%d",&num2[i]);
mp[num2[i]]++;
}
int cnt=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
int x=num1[i]^num2[j];
if(mp.find(x)!=mp.end())
cnt++;
}
}
if(cnt%2==0)
printf("Karen\n");
else
printf("Koyomi\n");
}