QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#885261 | #9669. Function Query | lvkaiyi0811 | WA | 180ms | 7948kb | C++14 | 1.1kb | 2025-02-06 14:59:16 | 2025-02-06 14:59:17 |
Judging History
answer
#include<bits/stdc++.h>
#define ll int
using namespace std;
const ll _=1e6+5,N=_<<5;
struct o{ll x,y;bool operator<(const o &t)const{return x<t.x;}};
ll n,q,x,y,z,l,r,a[_],c[N],rt,T,L[N],R[N],i;set<o>b;
void upd(ll x){
ll *t=&rt,i;
for(i=30;i--;){
if(!*t)*t=++T;c[*t]++;
t=&(((x>>i)&1)?R:L)[*t];
}
if(!*t)*t=++T;c[*t]++;
}
ll p(ll x){return b.lower_bound({x,0})->y;}
ll que(ll x,ll y,bool f){
ll t=rt,k=0,i;
for(i=30;i--;){
if(!t||!c[t])return -1;
if(((x^y)>>i)&1){
if((((y>>i)&1)^f)&&c[L[t]])return p(k);
t=R[t];k|=(1<<i);
}
else{
if((((y>>i)&1)^f)&&c[R[t]])return p(k|(1<<i));
t=L[t];
}
}
return -1;
}
ll P(){
auto it=b.lower_bound({x^y,0});
if((it->x)==(x^y))return ((it->y)-1)?:1;
bool u=((a[1]^x)<y);
l=1;r=que(x,y,u);if(r<0)return -1;
while(l+1<r){z=(l+r)>>1;if(((a[z]^x)<y)==u)l=z;else r=z;}
return l;
}
int main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n>>q;
for(i=1;i<=n;i++)cin>>a[i],b.insert({a[i],i}),upd(a[i]);
while(q--){
cin>>x>>y;
cout<<P()<<'\n';
}
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 5644kb
input:
5 6 3 5 1 2 4 0 2 1 1 2 3 3 2 4 2 5 8
output:
3 2 2 2 4 -1
result:
ok ok
Test #2:
score: 0
Accepted
time: 0ms
memory: 5856kb
input:
2 1 3 3 0 3
output:
1
result:
ok ok
Test #3:
score: 0
Accepted
time: 121ms
memory: 5864kb
input:
300000 300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
59791 209610 89695 119478 89695 269763 29721 59791 89695 209610 149700 269763 209610 59791 -1 29721 239765 149700 149700 179614 179614 179614 209610 89695 209610 269763 59791 149700 59791 239765 209610 209610 29721 89695 269763 59791 119478 89695 149700 29721 29721 209610 59791 29721 149700 149700 1...
result:
ok ok
Test #4:
score: 0
Accepted
time: 76ms
memory: 7788kb
input:
300000 300000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
59824 29872 239818 120024 269973 120024 209816 120024 1 120024 120024 29872 179677 209816 90063 90063 59824 29872 209816 120024 59824 209816 120024 149876 179677 59824 1 149876 120024 149876 59824 269973 209816 179677 1 120024 239818 149876 179677 29872 239818 29872 149876 149876 120024 120024 14987...
result:
ok ok
Test #5:
score: 0
Accepted
time: 80ms
memory: 7792kb
input:
299999 300000 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999...
output:
59912 59912 209643 119893 59912 119893 239680 59912 1 149833 269781 59912 179888 239680 119893 89929 179888 149833 179888 -1 239680 89929 59912 59912 269781 59912 59912 179888 59912 1 269781 89929 59912 59912 59912 59912 269781 239680 59912 209643 239680 30018 1 179888 30018 59912 59912 59912 59912 ...
result:
ok ok
Test #6:
score: 0
Accepted
time: 83ms
memory: 7784kb
input:
299999 300000 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999990 999999...
output:
149501 209808 59597 59597 179553 89750 89750 59597 179553 59597 29668 59597 269967 149501 209808 209808 59597 59597 119571 59597 149501 269967 59597 59597 269967 239884 179553 269967 59597 239884 59597 59597 59597 89750 149501 89750 269967 119571 59597 59597 269967 1 239884 119571 29668 59597 59597 ...
result:
ok ok
Test #7:
score: 0
Accepted
time: 101ms
memory: 7752kb
input:
300000 300000 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 ...
output:
24072 135238 -1 153067 153067 71992 -1 162026 62885 -1 -1 108288 153067 153067 -1 153067 -1 50934 -1 -1 153067 62885 62885 153067 153067 -1 168096 -1 -1 11995 -1 -1 30177 -1 39023 153067 -1 62885 210256 233864 269855 -1 62885 -1 -1 114235 -1 50934 -1 153067 -1 62885 62885 -1 -1 62885 -1 257912 -1 -1...
result:
ok ok
Test #8:
score: 0
Accepted
time: 90ms
memory: 7692kb
input:
300000 300000 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ...
output:
153157 -1 -1 -1 -1 80636 281910 -1 201058 132105 -1 65745 245980 -1 2965 -1 -1 -1 17964 -1 195073 -1 195073 -1 201058 -1 -1 177103 269817 -1 71754 219008 -1 248865 -1 27020 147070 -1 86719 224959 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 80636 -1 -1 -1 -1 281910 180088 17964 123018 201058 -1 -1 86719 -1 2398...
result:
ok ok
Test #9:
score: 0
Accepted
time: 180ms
memory: 7948kb
input:
299999 300000 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 4583175 458317...
output:
158339 158339 71398 158339 89629 11811 71398 158339 176520 44602 254981 158339 71398 197572 158339 158339 44602 254981 158339 80638 71398 14830 158339 197572 158339 158339 158339 71398 158339 288007 89629 -1 44602 158339 288007 71398 158339 224648 104451 116432 161432 158339 44602 158339 197572 8962...
result:
ok ok
Test #10:
score: 0
Accepted
time: 178ms
memory: 7788kb
input:
300000 300000 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806 788806...
output:
44865 167793 92835 56877 167793 258008 20978 156030 258008 218910 92835 92835 138187 167793 167793 167793 167793 167793 258008 138187 167793 126151 167793 29893 194783 92835 44865 167793 167793 92835 203749 185730 80922 218910 248950 44865 203749 185730 44865 288039 -1 47858 147204 -1 80922 288039 1...
result:
ok ok
Test #11:
score: 0
Accepted
time: 126ms
memory: 7920kb
input:
299999 300000 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355592 963355...
output:
1 -1 -1 -1 1 1 -1 -1 1 1 1 -1 1 1 1 1 1 1 -1 -1 1 1 -1 -1 1 1 1 1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1 -1 1 1 1 1 -1 -1 1 -1 -1 1 1 1 1 -1 1 1 -1 -1 -1 1 1 -1 1 -1 1 1 1 1 -1 -1 -1 1 -1 1 1 1 1 1 -1 1 1 1 1 1 1 -1 1 1 -1 -1 -1 -1 1 -1 -1 1 1 1 1 1 -1 -1 1 -1 1 1 -1 1 -1 1 1 1 1 1 1 1 1 -1 -1 1 1...
result:
ok ok
Test #12:
score: 0
Accepted
time: 134ms
memory: 7788kb
input:
300000 300000 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122736 231122...
output:
1 -1 1 1 -1 -1 -1 1 -1 1 1 1 1 1 1 1 1 1 -1 -1 1 -1 -1 1 -1 1 1 1 1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 1 -1 1 -1 -1 1 1 -1 -1 -1 1 -1 1 -1 1 1 -1 1 -1 1 -1 1 1 -1 1 1 -1 -1 -1 1 -1 1 1 1 -1 -1 1 1 -1 1 -1 1 1 -1 1 1 -1 -1 -1 1 1 1 1 1 -1 -1 1 1 -1 1 1 1 1 1 1 1 -1 1 1 1 -1 1 1 1 1 -1 -1 -1 1 -1 -1 -1...
result:
ok ok
Test #13:
score: -100
Wrong Answer
time: 111ms
memory: 5736kb
input:
300000 300000 2 1 3 5 0 3 3 2 2 4 1 4 1 4 0 0 1 3 0 1 2 5 1 5 1 5 1 3 0 1 0 2 5 1 1 3 1 3 0 2 5 5 5 0 5 4 5 5 5 2 0 5 0 4 3 0 2 5 3 1 4 1 4 1 1 2 3 4 3 5 0 0 4 2 0 1 5 1 0 1 5 0 3 5 4 0 0 4 1 4 4 1 4 2 3 1 2 5 5 2 0 2 5 1 2 2 5 0 4 1 5 4 0 1 3 3 3 4 1 2 3 1 4 4 2 3 0 1 3 3 1 3 3 4 5 1 4 3 1 3 1 4 0 ...
output:
3 -1 -1 3 -1 -1 4 -1 9 9 2 -1 2 9 9 -1 -1 4 4 1 9 1 -1 9 -1 1 3 -1 -1 1 -1 9 -1 9 1 -1 9 -1 1 -1 9 -1 3 -1 -1 1 -1 -1 1 3 -1 -1 9 1 4 4 -1 1 -1 -1 1 1 -1 9 1 -1 9 -1 -1 -1 -1 -1 2 1 9 9 -1 2 9 3 1 2 4 -1 -1 1 -1 -1 9 3 -1 -1 3 4 -1 4 1 3 -1 3 3 1 -1 -1 9 4 -1 -1 -1 -1 2 2 9 1 4 -1 9 2 -1 -1 1 4 -1 1...
result:
wrong answer participant gave a wrong answer