#include "cup.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
#define sp <<" "<<
#define endl "\n"
const int ONES = (1 << 30) - 1;
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((1 << 29), 0);
    if (!(checkX & (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... |