QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#858269#8939. PermutationI_like_magicWA 4ms3584kbC++141.3kb2025-01-16 15:28:042025-01-16 15:29:17

Judging History

This is the latest submission verdict.

  • [2025-01-16 15:29:17]
  • Judged
  • Verdict: WA
  • Time: 4ms
  • Memory: 3584kb
  • [2025-01-16 15:28:04]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
constexpr double phi = 0.618;
constexpr int N = 0, P = 0;
int n;
int pos;
void solve(int l, int r) {
    if(l == r) {
        cout << "! " << l << endl;
        return ;
    }
    int len = (r - l + 1) / (1 + phi);
    if(pos <= l + len - 1) {
        int ps = 0;
        if(l < l + len - 1) {
            cout << "? " << l << " " << l + len - 1 << endl;
            cin >> ps;
        }
        if(ps == pos) {
            solve(l, l + len - 1);
        } else {
            if(l + len < r) {
                cout << "? " << (l + len) << " " << r << endl;
                cin >> pos;
            }
            solve(l + len, r);
        }
    } else {
        int ps = 0;
        if(r - len + 1 < r) {
            cout << "? " << r - len + 1 << " " << r << endl;
            cin >> ps;
        }
        if(ps == pos) {
            solve(r - len + 1, r);
        } else {
            if(l < r - len) {
                cout << "? " << l << " " << r - len << endl;
                cin >> pos;
            }
            solve(l, r - len);
        }
    }
}
int Main() {
    cin >> n;
    cout << "? " << 1 << " " << n << endl;
    cin >> pos;
    solve(1, n);
    return 0;
}
int main() {
    int t;
    cin >> t;
    while(t --) {
        Main();
    }
    return 0;
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3456kb

input:

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

output:

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

result:

ok Correct (3 test cases)

Test #2:

score: -100
Wrong Answer
time: 4ms
memory: 3584kb

input:

10000
10
2
2
3
5
5
10
10
10
8
5
7
10
5
1
10
9
8
10
4
4
6
2
1

output:

? 1 10
? 1 6
? 1 3
? 4 6
? 4 5
! 4
? 1 10
? 5 10
? 8 10
? 5 7
? 6 7
! 6
? 1 10
? 1 6
? 7 10
? 9 10
? 7 8
! 7
? 1 10
? 1 6
? 4 6
? 1 3
? 1 2
! 2

result:

wrong answer Wrong prediction (test case 4)