Submission #1199839

#TimeUsernameProblemLanguageResultExecution timeMemory
1199839pineapple0006Worm Worries (BOI18_worm)C++17
0 / 100
0 ms412 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

ll n, m, k, q;

ll find(ll start, ll end) {
    if(start == end) {
        return start;
    }

    if(end - start <= 5000) {
        return find(start + 1, end);
    }

    ll q1, q2;
    ll middle = (start + end) / 2;
    cout << "? " << middle << " " << 1 << " " << 1 << endl;
    cin >> q1;
    cout << "? " << middle + 1 << " " << 1 << " " << 1 << endl;
    cin >> q2;
    
    if(q1 >= q2) {
        return find(start, middle + 1);
    } else {
        return find(middle + 2, end);
    }
}

int main() {
    cin >> n >> m >> k >> q;
    ll a, b;
    cout << "? " << n / 2 << " " << 1 << " " << 1 << endl;
    cin >> a;
    cout << "? " << n / 2 + 1 << " " << 1 << " " << 1 << endl;
    cin >> b;
    
    cout << find(0, n);
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...