Pagini recente » Cod sursa (job #114636) | Cod sursa (job #1514895) | Cod sursa (job #1437951) | Cod sursa (job #1382022) | Cod sursa (job #1886698)
#include <cstdio>
#include <vector>
#include <cstring>
#include <algorithm>
#define MAXN 100001
#define MAXV 1025
#define INF 0x3f3f3f3f
using namespace std;
int v[MAXV], rev[MAXV];
int main()
{
freopen("input", "r", stdin);
freopen("output", "w", stdout);
int i, op, s = 0, n, aux, k, x, val, idx, ans = -INF, mini = INF;
scanf("%d%d%d", &n, &k, &x);
for(i=1; i<=n; ++i) {
scanf("%d", &val);
v[val]++;
}
for(op=1; op<=k; ++op) {
s = 0;
idx = 1;
for(i=0; i<MAXV; ++i)
{
rev[i] += v[i];
if(s < idx && s+v[i] >= idx)
{
aux = x ^ i;
rev[i]--;
rev[aux]++;
idx += x;
}
s += v[i];
}
memcpy(v, rev, sizeof rev);
}
for(i=0; i<MAXV; ++i)
if(v[i])
ans = max(ans, i), mini = min(mini, i);
printf("%d %d", ans, mini);
return 0;
}