QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#625890#8939. Permutationsjw712TL 0ms0kbC++14893b2024-10-09 21:35:532024-10-09 21:35:54

Judging History

This is the latest submission verdict.

  • [2024-10-09 21:35:54]
  • Judged
  • Verdict: TL
  • Time: 0ms
  • Memory: 0kb
  • [2024-10-09 21:35:53]
  • Submitted

answer

#include<bits/stdc++.h>
#define int long long
#define x first
#define y second
using namespace std;
typedef pair<int, int> pii;
int ask(int l, int r){
	cout << "? " << l << " " << r << endl;
	int res;
	cin >> res;
	return res;
}
void solve(){
	// 2 5 1 3 4
	int n;
	cin >> n;
	int l = 1, r = n;
	int last;
	while(l < r){
		last = ask(l, r);
		if(r - l == 1){
			if(last == l){
				l = r;
				break;
			}
			else break;
		}
		int mid = l + r >> 1;
		if(last > mid){
			if(mid + 1 == r){
				l = r;
				break;
			}
			if(ask(mid + 1, r) == last){
				l = mid + 1;
			}
			else r = mid;
		}
		else{
			if(l == mid) break;
			if(ask(l, mid) == last){
				r = mid;
			}
			else l = mid + 1;
		}
	}
	cout << "! " << l << '\n';
}
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	int t = 1;
	cin >> t;
	while(t --){
		solve();
	}
}  

详细

Test #1:

score: 0
Time Limit Exceeded

input:

3
5
3
2
5

output:

? 1 5
? 1 3
? 4 5

result: