QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#666428 | #8939. Permutation | xh_team# | RE | 0ms | 0kb | C++20 | 925b | 2024-10-22 18:25:40 | 2024-10-22 18:25:53 |
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;
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;
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;
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();
}
}
詳細信息
Test #1:
score: 0
Runtime Error
input:
3 5
output:
! ? 1 5