提交时间:2025-02-10 13:39:13

运行 ID: 36212

#include<bits/stdc++.h> #define int long long using namespace std; void init(){ freopen("function.in","r",stdin); freopen("function.out","w",stdout); } int x[1000010]; signed main(){ ios::sync_with_stdio(0); srand(time(0)); cin.tie(0); cout.tie(0); int n,q; cin>>n>>q; for(int i=1;i<=n;i++){ cin>>x[i]; } if(n>100000){ for(int i=1;i<=q;i++)cout<<-1<<endl; return 0; } for(int i=1;i<=q;i++){ int a,b; cin>>a>>b; bool flag=0; for(int i=1,j=n-1;i<j;i++,j--){ int k=rand()%n+1; if(((x[k]^a)<=b&&(x[k+1]^a)>=b)||((x[k]^a)>=b&&(x[k+1]^a)<=b)){ flag=1; cout<<k<<endl; break; } k=rand()%n+1; if(((x[k]^a)<=b&&(x[k+1]^a)>=b)||((x[k]^a)>=b&&(x[k+1]^a)<=b)){ flag=1; cout<<k<<endl; break; } if(((x[i]^a)<=b&&(x[i+1]^a)>=b)||((x[i]^a)>=b&&(x[i+1]^a)<=b)){ flag=1; cout<<i<<endl; break; } if(((x[j]^a)<=b&&(x[j+1]^a)>=b)||((x[j]^a)>=b&&(x[j+1]^a)<=b)){ flag=1; cout<<j<<endl; break; } } if(!flag)cout<<-1<<endl; } return 0; }