QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#603250#8939. Permutationpropane#WA 1ms3584kbC++201.6kb2024-10-01 15:31:022024-10-01 15:31:05

Judging History

This is the latest submission verdict.

  • [2024-10-01 15:31:05]
  • Judged
  • Verdict: WA
  • Time: 1ms
  • Memory: 3584kb
  • [2024-10-01 15:31:02]
  • Submitted

answer

#include<iostream>
#include<cstring>
#include<vector>
#include<cmath>
using namespace std;
using LL = long long;

int main(){

// #ifdef LOCAL
//     freopen("data.in", "r", stdin);
//     freopen("data.out", "w", stdout);
// #endif

    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(0);

    // int t = 1000000;
    // cout << ceil(1.5 * log2(t)) << '\n';
    // int cnt = 0;
    // while(t) cnt += 1, t = t * 0.618;
    // cout << cnt << '\n';

    // 要么两次操作 长度 * (1 - 0.618)
    // 要么依次操作 长度 * 0.618

    auto ask = [&](int l, int r){
        cout << l << ' ' << r << endl;
        int t;
        cin >> t;
        return t;
    };

    auto solve = [&](auto &&solve, int l, int r, int p2) -> void {
        if (l == r){
            cout << "! " << r << endl;
            return;
        }
        if (p2 == 0) p2 = ask(l, r);
        if (r - l + 1 == 2){
            cout << "! " << (l == p2 ? r : l) << endl;
            return;
        }
        int len = (r - l + 1) * 0.618;
        len = max(len, 2);
        if (p2 >= l and p2 <= l + len - 1){
            int t = ask(l, l + len - 1);
            if (t == p2) solve(solve, l, l + len - 1, p2);
            else solve(solve, l + len, r, 0);
        }
        else{
            int t = ask(r - len + 1, r);
            if (t == p2) solve(solve, r - len + 1, r, p2);
            else solve(solve, l, r - len, 0);
        }
    };

    int T;
    cin >> T;
    while(T--){
        int n;
        cin >> n;
        solve(solve, 1, n, 0);
    }

}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 1ms
memory: 3584kb

input:

3
5

output:

1 5

result:

wrong answer Token parameter [name=type] equals to "1", doesn't correspond to pattern "?|!" (test case 1)