QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#801648#8939. PermutationNoobie_99#WA 5ms3664kbC++201.2kb2024-12-07 04:47:162024-12-07 04:47:17

Judging History

This is the latest submission verdict.

  • [2024-12-07 04:47:17]
  • Judged
  • Verdict: WA
  • Time: 5ms
  • Memory: 3664kb
  • [2024-12-07 04:47:16]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define all(x) ::begin(x), ::end(x)
void _d(auto... x) { ((cerr << ' ' << x), ...) << endl; }
#define debug(x...) cerr << "["#x"]:", _d(x)

int query(int l, int r) {
    if (l+1 == r) return l;
    cout << "? " << l+1 << ' ' << r << endl;
    cin >> l;
    return l-1;
}

int main() {
    cin.tie(0)->sync_with_stdio(0);

    int T;
    cin >> T;
    while (T--) {
        int n;
        cin >> n;

        int sec = query(0, n);
        int l = 0, r = n;
        while (l+2 < r) {
            int m = l + (r-l) / 3;

            if (sec >= m) {
                int x = query(m, r);
                if (x == sec) {
                    l = m;
                } else {
                    r = m;
                    sec = query(l, r);
                }
            } else {
                m = r - (r-l) / 3;
                int x = query(l, m);
                if (x == sec) {
                    r = m;
                } else {
                    l = m;
                    sec = query(l, r);
                }
            }
        }

        if (l+1 != r) sec = sec == l ? l+1 : l;
        cout << "! " << sec+1 << endl;
    }
}

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 3604kb

input:

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

output:

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

result:

ok Correct (3 test cases)

Test #2:

score: -100
Wrong Answer
time: 5ms
memory: 3664kb

input:

10000
10
2
2
2
2
2

output:

? 1 10
? 1 7
? 1 5
? 2 5
? 2 4
? 2 3

result:

wrong answer Too many queries , n = 10 , now_q 6 (test case 1)