QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#599486#8939. Permutationprofessor_pandaWA 0ms3680kbC++141.6kb2024-09-29 05:33:252024-09-29 05:33:26

Judging History

This is the latest submission verdict.

  • [2024-09-29 05:33:26]
  • Judged
  • Verdict: WA
  • Time: 0ms
  • Memory: 3680kb
  • [2024-09-29 05:33:25]
  • Submitted

answer

#include <bits/stdc++.h>
#define fastio ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;

const double rat = 0.618;


int query (int l, int r) {
    int index;
    cout << "? " << l << ' ' << r << endl;
    cin >> index;
    return index;
}

int solve (int n) {
    int ioslv = query (1, n);
    int l = 1;
    int r = n;
    while (r - l > 2) {
        int mid;

        if (ioslv <= l + (r - l)* rat) {
            mid = int(l + (r - l) * rat);
            if (query (l, mid) == ioslv) {
                r = mid;
            }
            else {
                l = mid + 1;
                ioslv = query(l, r);
            }
        }
        else {
            mid = int(r - (r - l) * rat + 1);
            if (query(mid, r) == ioslv) {
                l = mid + 1;
            }
            else {
                r = mid;
                ioslv = query(l, r);
            }
        }
    }

    if (l == r - 1) {
        if (ioslv == l) {
            return r;
        }
        return l;
    }

    if (l == ioslv) {
        if (query(r - 1, r) == r) {
            return r - 1;
        }
        return r;
    }

    if (r == ioslv) {
        if (query (l, l + 1) == l) {
            return l + 1;
        }
        return l;
    }
    if (l + 1 == query(l, l + 1)) {
        return l;
    }
    return r;
}


int main() {
    fastio;
    int T;
    cin >> T;
    while (T--) {
        int N;
        cin >> N;
        int ans = solve(N);
        cout << "! " << ans << endl;
    }
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3680kb

input:

3
5
3
2
5
6
6
3
3
1
4
3
3

output:

? 1 5
? 1 3
? 4 5
! 4
? 1 6
? 3 6
? 1 3
? 1 2
! 2
? 1 4
? 3 4
? 4 5

result:

wrong answer Integer 4 violates the range [1, 3] (test case 3)