QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#528284#6394. Turn on the Lightmegumi#WA 1ms3684kbC++141.3kb2024-08-23 12:27:312024-08-23 12:27:34

Judging History

你现在查看的是最新测评结果

  • [2024-08-23 12:27:34]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3684kb
  • [2024-08-23 12:27:31]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353;
inline int read() {
    int x = 0, f = 1;
    char c = getchar();
    while (c < '0' || c > '9')
        f = (c == '-') ? -1 : 1, c = getchar();
    while (c >= '0' && c <= '9')
        x = x * 10 + c - 48, c = getchar();
    return f * x;
}
signed main() {
    int n, l = 2, r, ans = 0, x, last = 0;
    cin >> n, r = n;
    cout << "? 1" << endl;
    cin >> last;
    if (last == 0) {
        cout << "! 1" << endl;
        return 0;
    }
    while (l <= r) {
        int mid = (l + r) >> 1;
        cout << "? " << mid << endl;
        cin >> x;
        if (x == last) {
            cout << "! " << mid << endl;
            return 0;
        }
        if (x == last - 1) {
            last = x;
            cout << "? " << l + 1 << endl;
            cin >> x;
            if (x == last) {
                cout << "! " << l + 1 << endl;
                return 0;
            }
            r = mid - 1;
            l++;
        } else {
            last = x;
            cout << "? " << mid + 1 << endl;
            cin >> x;
            if (x == last) {
                cout << "! " << mid + 1 << endl;
                return 0;
            }
            l = mid + 2;
        }
        last = x;
    }
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

3
1
2
2

output:

? 1
? 2
? 3
! 3

result:

ok Correct position at 3

Test #2:

score: -100
Wrong Answer
time: 0ms
memory: 3684kb

input:

10
1
0
1
2
3

output:

? 1
? 6
? 3
? 4
? 5

result:

wrong answer format  Unexpected end of file - token expected