#include "cup.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
#define sp <<" "<<
#define endl "\n"
vector<int> find_cup() {
vector<int> res(2);
int base = ask_shahrasb(0, 0);
bool flipX = false, flipY = false;
int checkX = ask_shahrasb((1 << 29), 0);
if (!(checkX & (1 << 29))) {
flipX = true;
}
int checkY = ask_shahrasb(0, (1 << 29));
if (!(checkY & (1 << 29))) {
flipY = true;
}
vector<int> queries(30);
for (int bit = 0; bit < 30; bit++) {
int shift = (1 << bit);
if (flipX) shift *= -1;
int query = ask_shahrasb(shift, 0);
queries[bit] = (base ^ query);
}
for (int i = 0; i < 30; i++) {
if (queries[i] & (1 << (i+1))) {
res[0] |= (1 << i);
}
}
for (int i = 0; i < 30; i++) {
if ((base & (1 << i)) ^ (res[0] & (1 << i))) {
res[1] |= (1 << i);
}
}
if (!flipX) res[0] *= -1;
if (!flipY) res[1] *= -1;
cerr << res[0] sp res[1] << endl;
return res;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |