Submission #394313

#TimeUsernameProblemLanguageResultExecution timeMemory
394313KoDColors (BOI20_colors)C++17
9 / 100
3 ms316 KiB
#include <bits/stdc++.h>

using ll = long long;

bool ask(const ll x) {
    std::cout << "? " << x << std::endl;
    bool f;
    std::cin >> f;
    return f;
}

int main() {
    ll N;
    std::cin >> N;
    ll len = N - 1;
    ll pos = 1, dir = 1;
    ask(pos);
    while (len > 0) {
        pos += len * dir;
        dir = -dir;
        if (!ask(pos)) {
            std::cout << "= " << len + 1 << std::endl;
            return 0;
        }
        len -= 1;
    }
    std::cout << "= " << 1 << std::endl;
    // assert(N <= 125);
    // if (N == 2) {
    //     ask(1);
    //     const auto ans = (ask(2) ? 1 : 2);
    //     std::cout << "= " << ans << std::endl;
    //     return 0;
    // }
    // ll half = (N - 1) / 2;
    // ll other = (N - 1) - half;
    // ll pos = 1 + (other + 1) / 2;
    // ask(pos);
    // pos += half;
    // if (ask(pos)) {
    //     ll len = half;
    //     ll dir = -1;
    //     while (--len > 0) {
    //         pos += dir * len;
    //         dir *= -1;
    //         if (!ask(pos)) {
    //             break;
    //         }
    //     }
    //     std::cout << "= " << len + 1 << std::endl;
    // }
    // else {
    //     ll len = half;
    //     ll dir = -1;
    //     while (++len < N) {
    //         pos += dir * len;
    //         dir *= -1;
    //         if (ask(pos)) {
    //             break;
    //         }
    //     }
    //     std::cout << "= " << len << std::endl;
    // }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...