QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#557924#8939. PermutationaaaaaWA 7ms3652kbC++231.7kb2024-09-11 12:22:272024-09-11 12:22:27

Judging History

This is the latest submission verdict.

  • [2024-09-11 12:22:27]
  • Judged
  • Verdict: WA
  • Time: 7ms
  • Memory: 3652kb
  • [2024-09-11 12:22:27]
  • Submitted

answer

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

ll T;
ll N;
ll ret;
ll l, r;
ll current, st;

ll query(ll x, ll y) {
    cout << "? " << x << " " << y << endl;
    cin >> ret;
    return ret;
}

int main() {
    cin.tie(0)->sync_with_stdio(0);
    
    cin >> T;
    while (T--) {
        cin >> N;
        
        if (N == 1) {
            cout << "! " << 1 << endl;
            continue;
        }
        l = 1;
        r = N;
        st = query(1, N);
        
        while (r-l > 2) {
            current = l+(r-l+1)*0.618-1;
            if (st < current) {
                if (query(l, current) == st) {
                    r = current;
                }
                else {
                    st = query(current+1, r);
                    l = current+1;
                }
            }
            else {
                current = r-(r-l+1)*0.618;
                if (query(current+1, r) == st) {
                    l = current+1;
                }
                else {
                    st = query(l, current);
                    r = current;
                }
            }
        }
        
        if (l == r-1) {
            if (st == l) {
                l = r;
            }
        }
        else {
            if (st <= l+1) {
                if (query(l, l+1) == st) {
                    if (st == l) {
                        ++l;
                    }
                }
                else {
                    l = r;
                }
            }
            else {
                if (query(l, l+1) == l) {
                    ++l;
                }
            }
        }
        
        cout << "! " << l << endl;
    }
    
    return 0;
}

詳細信息

Test #1:

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

input:

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

output:

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

result:

ok Correct (3 test cases)

Test #2:

score: -100
Wrong Answer
time: 7ms
memory: 3652kb

input:

10000
10
2
2
3
5
5
10
10
10
10
7

output:

? 1 10
? 1 6
? 1 3
? 4 6
? 4 5
! 4
? 1 10
? 4 10
? 6 10
? 7 10
? 6 6

result:

wrong answer Integer 6 violates the range [7, 10] (test case 2)