QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#666418 | #8939. Permutation | xh_team# | RE | 0ms | 0kb | C++20 | 946b | 2024-10-22 18:21:17 | 2024-10-22 18:21:18 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define PII pair<int,int>
#define lson 2*p
#define rson 2*p+1
#define x first
#define y second
// #define endl "\n"
const int N=2e5+10;
const int mod=1e9+7;
vector<int> v;
int last=-1;
int ans=0;
int ask(int l,int r) {
cout<<"? "<<l<<" "<<r<<endl;
int k;
cin>>k;
return k;
}
int solve(int l,int r,int last) {
if(l==r) return l;
if(last==-1) last=ask(l,r);
if(r-l==1) return (l^r^last);
if(r>=2*last-l) {
int len=r-l+1;
int k=ask(l,l+len*3/5);
if(k==last) solve(l,l+len*3/5,k);
else solve(l+len*3/5+1,r,-1);
} else {
int len=r-l+1;
int k=ask(r-len*3/5,r);
if(k==last) solve(r-len*3/5,r,k);
else solve(l,r-len*3/5-1,-1);
}
}
void solve() {
int n;
cin>>n;
cout<<"! "<<solve(1,n,-1)<<endl;
}
signed main() {
// ios::sync_with_stdio(false);
// cin.tie(0);
int T=1;
cin>>T;
while(T--) {
solve();
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Runtime Error
input:
3 5
output:
! ? 1 5