QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#885354#9669. Function Querylvkaiyi0811AC ✓405ms68520kbC++141.1kb2025-02-06 15:23:002025-02-06 15:23:06

Judging History

This is the latest submission verdict.

  • [2025-02-06 15:23:06]
  • Judged
  • Verdict: AC
  • Time: 405ms
  • Memory: 68520kb
  • [2025-02-06 15:23:00]
  • Submitted

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