QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#858237#8939. Permutationbamboo123WA 0ms3456kbC++14844b2025-01-16 15:15:172025-01-16 15:15:27

Judging History

This is the latest submission verdict.

  • [2025-01-16 15:15:27]
  • Judged
  • Verdict: WA
  • Time: 0ms
  • Memory: 3456kb
  • [2025-01-16 15:15:17]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 1e6 + 5;
int query(int l, int r) {
	cout << "? " << l << " " << r << endl;
	int x; cin >> x;
	return x;
}
int getlen(int l, int r) {
	return (r - l) * 2 / 3;
}
void solve() {
	int n; cin >> n;
	int l = 1, r = n, lst = query(1, n);
	while(l + 1 < r) {
		if(lst <= (l + r) / 2) {
			int mid = l + getlen(l, r);
			if(lst == query(l, mid))
				r = mid;
			else {
				l = mid + 1;
				if(l != r)
					lst = query(l, r);
			}
		}
		else {
			int mid = r - getlen(l, r);
			if(lst == query(mid, r))
				l = mid;
			else {
				r = mid - 1;
				if(l != r)
					lst = query(l, r);
			}
		}
	}	
	cout << "!" << (l == r ? l : (l == lst ? r : l)) << endl;
}
signed main() {
	int T; cin >> T;
	while(T--)
		solve();
	return 0;
}

详细

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3456kb

input:

3
5
3
2
5

output:

? 1 5
? 1 3
? 4 5
!4

result:

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