QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#885354 | #9669. Function Query | lvkaiyi0811 | AC ✓ | 405ms | 68520kb | C++14 | 1.1kb | 2025-02-06 15:23:00 | 2025-02-06 15:23:06 |
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!=b.end()&&(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';
}
}
这程序好像有点Bug,我给组数据试试?
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 5732kb
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: 5860kb
input:
2 1 3 3 0 3
output:
1
result:
ok ok
Test #3:
score: 0
Accepted
time: 69ms
memory: 7920kb
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: 64ms
memory: 7748kb
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: 81ms
memory: 5732kb
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: 82ms
memory: 7916kb
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: 85ms
memory: 7924kb
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: 80ms
memory: 5736kb
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: 103ms
memory: 7792kb
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: 101ms
memory: 5632kb
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: 72ms
memory: 7792kb
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: 76ms
memory: 5632kb
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: 0
Accepted
time: 69ms
memory: 7788kb
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 9 9 9 2 9 2 9 9 9 -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 9 -1 1 1 -1 9 1 9 9 -1 -1 -1 -1 -1 2 1 9 9 -1 2 9 3 1 2 4 9 -1 1 -1 -1 9 3 -1 -1 3 4 -1 4 1 3 9 3 3 1 -1 -1 9 4 -1 -1 -1 -1 2 2 9 1 4 -1 9 2 9 9 1 4 -1 1 9 1 4 9 ...
result:
ok ok
Test #14:
score: 0
Accepted
time: 71ms
memory: 5736kb
input:
300000 300000 3 3 5 4 1 5 4 4 4 5 4 5 1 4 5 3 2 3 3 4 2 2 1 5 1 4 2 1 5 3 1 1 2 2 3 1 5 5 4 5 4 3 3 1 4 5 2 3 2 4 5 1 4 4 4 4 2 1 5 1 3 4 1 5 4 4 5 4 5 3 2 4 1 5 3 3 5 1 3 1 2 4 2 3 2 2 5 4 5 4 4 1 3 1 3 1 5 1 5 5 3 5 3 5 3 3 4 5 1 5 5 3 5 5 3 4 4 2 2 3 2 2 1 2 2 3 1 4 3 1 4 3 4 2 4 2 4 2 3 4 3 5 2 ...
output:
-1 2 1 -1 16 2 -1 -1 -1 -1 2 2 -1 -1 -1 4 1 4 -1 1 -1 4 1 -1 -1 -1 1 16 4 4 -1 2 16 -1 2 2 1 -1 2 16 3 -1 -1 -1 16 16 -1 -1 -1 4 -1 -1 4 4 -1 -1 4 3 2 2 16 -1 2 -1 3 -1 2 2 1 -1 2 -1 4 16 2 2 -1 16 -1 2 -1 16 4 -1 2 1 2 2 3 1 -1 2 -1 2 4 -1 -1 1 2 2 -1 16 16 1 -1 1 1 16 -1 1 4 2 -1 3 3 -1 2 -1 3 16 ...
result:
ok ok
Test #15:
score: 0
Accepted
time: 63ms
memory: 5864kb
input:
300000 300000 0 2 0 2 5 2 0 3 4 3 3 0 1 2 0 0 5 1 1 1 1 1 4 1 0 4 0 2 5 4 2 2 5 4 0 4 2 5 4 3 0 0 0 5 5 3 1 3 1 0 4 0 1 2 0 1 0 4 0 1 3 0 5 3 3 0 1 5 5 2 5 0 2 0 4 5 1 3 5 5 1 2 3 5 2 0 3 3 4 4 4 0 0 2 4 2 2 3 2 1 0 3 3 2 1 3 3 3 1 4 2 5 2 4 1 2 4 2 3 4 1 2 3 3 4 4 3 1 3 5 3 3 2 3 5 4 4 4 0 0 1 0 1 ...
output:
1 1 8 12 7 1 1 12 8 1 8 4 12 7 12 8 7 1 12 8 1 1 7 4 1 7 8 1 8 1 12 7 8 1 7 1 7 7 12 1 12 1 7 4 12 1 1 1 4 12 12 4 12 12 12 1 1 4 7 1 8 1 1 1 8 7 4 4 4 12 8 1 7 1 1 12 8 7 1 1 12 4 4 7 12 8 8 12 8 8 4 8 7 1 7 7 8 7 8 1 7 8 1 7 8 1 8 12 12 7 12 1 4 7 7 1 1 7 7 4 8 1 4 1 12 7 8 1 7 4 1 4 8 1 12 4 7 1 ...
result:
ok ok
Test #16:
score: 0
Accepted
time: 66ms
memory: 7920kb
input:
300000 300000 3 4 4 1 1 5 1 4 4 1 2 5 4 1 1 1 4 3 5 2 4 5 4 4 4 2 4 2 5 5 5 4 5 4 1 5 2 2 2 5 5 2 1 3 1 2 4 4 1 5 1 3 1 5 3 3 3 4 5 2 5 5 2 4 1 3 2 2 2 5 4 1 3 4 5 4 1 2 3 2 1 1 3 2 4 4 1 4 1 4 3 2 1 3 2 5 1 4 5 4 3 2 2 4 3 1 3 2 4 3 4 3 5 4 3 5 5 2 1 1 3 4 2 2 1 2 1 5 5 2 3 5 2 5 3 5 4 4 5 5 5 2 3 ...
output:
10 10 1 3 -1 10 10 3 10 -1 1 10 3 1 5 1 1 10 1 3 -1 -1 10 3 1 3 1 1 10 5 10 3 5 -1 -1 1 10 5 5 -1 3 10 1 1 -1 5 5 1 1 1 -1 10 5 10 3 3 1 10 1 1 1 -1 -1 1 10 10 1 10 -1 1 10 1 -1 1 5 10 10 1 3 5 1 5 10 1 5 1 1 10 5 1 1 1 10 5 1 1 3 10 5 10 1 1 1 -1 -1 1 10 1 1 1 10 1 -1 1 -1 -1 1 10 10 1 3 1 1 1 5 -1...
result:
ok ok
Test #17:
score: 0
Accepted
time: 69ms
memory: 7924kb
input:
300000 300000 5 2 3 3 1 5 0 3 2 4 2 5 1 2 4 1 1 5 4 5 0 4 0 4 4 0 0 1 2 3 0 1 1 4 1 1 2 5 3 0 2 4 4 0 2 1 5 0 2 1 0 4 5 4 4 3 5 2 1 0 3 2 1 4 1 2 2 2 4 3 0 3 3 3 0 4 2 0 5 1 5 2 2 0 4 2 2 0 3 0 5 2 3 2 5 3 5 5 1 2 4 2 0 1 2 5 3 4 5 0 0 5 2 3 2 2 5 1 1 3 1 5 4 2 3 3 5 4 0 3 1 2 1 1 5 4 5 2 2 4 4 2 5 ...
output:
1 -1 2 1 -1 -1 1 -1 2 9 1 -1 9 9 4 1 -1 1 -1 6 -1 -1 4 6 -1 4 1 -1 2 -1 -1 6 -1 2 9 -1 -1 1 9 1 1 9 1 -1 -1 1 4 1 6 6 4 1 1 9 -1 -1 9 4 1 1 9 1 9 2 6 -1 -1 4 -1 -1 4 -1 -1 1 9 -1 9 9 6 -1 1 9 1 2 2 2 -1 4 1 1 9 -1 1 -1 6 9 -1 -1 -1 2 -1 6 9 2 -1 -1 9 -1 -1 -1 6 2 -1 -1 9 -1 -1 9 -1 -1 1 6 9 1 -1 -1 ...
result:
ok ok
Test #18:
score: 0
Accepted
time: 66ms
memory: 5696kb
input:
300000 300000 4 1 3 3 1 4 2 1 3 1 1 4 4 5 2 2 2 1 5 2 2 4 3 4 4 4 2 2 1 3 2 5 5 2 3 4 4 4 5 5 3 4 5 2 1 4 4 1 4 5 5 5 3 4 4 4 4 3 4 2 2 4 5 3 5 3 1 5 2 4 1 1 4 4 3 1 5 1 4 2 5 3 3 1 1 3 1 5 5 2 1 1 4 3 4 2 4 5 1 4 4 5 5 5 1 2 3 1 3 4 1 5 5 3 4 4 2 2 5 2 4 1 3 3 3 3 1 3 1 5 4 4 2 2 5 3 2 2 3 1 3 4 1 ...
output:
1 6 -1 6 -1 2 1 -1 13 -1 6 -1 -1 -1 1 -1 -1 -1 2 -1 -1 -1 2 -1 -1 -1 1 2 -1 -1 6 -1 -1 13 13 -1 -1 1 -1 -1 6 2 -1 1 1 -1 -1 1 -1 -1 -1 1 1 -1 -1 1 6 1 -1 -1 -1 -1 6 -1 -1 6 -1 6 -1 1 -1 -1 -1 -1 1 -1 1 -1 13 -1 -1 -1 -1 1 6 1 1 6 6 2 -1 2 -1 1 1 1 13 2 -1 -1 -1 -1 -1 -1 -1 6 -1 13 -1 -1 -1 1 -1 1 -1...
result:
ok ok
Test #19:
score: 0
Accepted
time: 396ms
memory: 68520kb
input:
299999 300000 368364702 522726267 191777284 836785831 580519392 679702855 851224739 286998110 385871146 870875427 45817410 544738809 510710727 165619883 318858025 794120765 630021531 511379876 132579749 299399929 498617931 364772164 347885601 884294669 2578901 576388254 66773472 757552580 738656163 ...
output:
254325 254325 254324 254325 25305 254324 100077 25305 14414 35961 254319 82591 140184 254324 254460 25305 11929 133008 254325 221513 25305 254324 216257 254460 12068 25305 143960 37234 254325 100076 70267 254325 254325 53742 56097 105393 105528 100080 18613 142799 105528 252637 236870 25305 35961 25...
result:
ok ok
Test #20:
score: 0
Accepted
time: 405ms
memory: 65636kb
input:
300000 300000 329363808 410837414 386542070 316091908 224988184 590807425 401154024 565635770 86332895 871768724 648980535 429516720 974692004 393242573 258082599 541700334 365570636 140418397 22543471 474596985 928885580 593375594 883649657 723085701 136251090 79716489 444939923 965935970 173809628...
output:
113876 162697 31869 20225 2600 2744 139828 164556 1278 5557 5557 2290 164738 31869 143802 143802 1189 5557 139828 31681 2748 1189 103260 2290 1278 164738 140528 2744 164738 179492 31020 164738 1278 118736 1189 936 103260 1189 265874 162735 31020 5559 2290 152146 264691 164738 179492 1189 45154 5557 ...
result:
ok ok
Extra Test:
score: 0
Extra Test Passed