QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#788164#9669. Function Queryship2077TL 340ms255408kbC++231.2kb2024-11-27 16:06:132024-11-27 16:16:39

Judging History

你现在查看的是最新测评结果

  • [2024-11-27 16:16:39]
  • 自动重测本题所有获得100分的提交记录
  • 测评结果:TL
  • 用时:340ms
  • 内存:255408kb
  • [2024-11-27 16:16:04]
  • hack成功,自动添加数据
  • (/hack/1261)
  • [2024-11-27 16:06:14]
  • 评测
  • 测评结果:100
  • 用时:350ms
  • 内存:253236kb
  • [2024-11-27 16:06:13]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
constexpr int M=3e5+5;map<int,int>mp;
int n,q,idx,ans,x[M],tr[M*60][4],cur[M*60];
int read(){
    int x=0;char ch=getchar();
    while (!isdigit(ch)) ch=getchar();
    while (isdigit(ch)) x=x*10+ch-48,ch=getchar();
    return x;
}
void insert(int x,int y,int id){
    int p=1;
    for (int i=29;~i;i--){
        int ch=((x>>i&1)<<1)|(y>>i&1);
        if (!tr[p][ch]) tr[p][ch]=++idx;
        p=tr[p][ch];
    } cur[p]=id;
}
void query(int p,int a,int b,int tmpa,int tmpb,int d=29){
    if (ans!=-1||!p) return;
    if (d<0) return ans=cur[p],void();
    const int A=a>>d,B=b>>d;
    tmpa<<=1;tmpb<<=1;
    for (int i=0;i<2;i++)
        for (int j=0;j<2;j++)
            if ((A^(tmpa|i))<=B&&B<=(A^(tmpb|j)))
                query(tr[p][i<<1|j],a,b,tmpa|i,tmpb|j,d-1);
}
int main(){
    n=read();q=read();idx=1;
    for (int i=1;i<=n;i++) x[i]=read();
    for (int i=1;i<n;i++) insert(x[i],x[i+1],i),insert(x[i+1],x[i],i);
    for (int i=1;i<=q;i++){
        int a=read(),b=read();ans=-1;
        if (mp.count(a^b)) ans=mp[a^b]; query(1,a,b,0,0);
        printf("%d\n",ans);
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3844kb

input:

5 6
3 5 1 2 4
0 2
1 1
2 3
3 2
4 2
5 8

output:

3
3
3
3
2
-1

result:

ok ok

Test #2:

score: 0
Accepted
time: 0ms
memory: 3848kb

input:

2 1
3 3
0 3

output:

1

result:

ok ok

Test #3:

score: 0
Accepted
time: 144ms
memory: 6280kb

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
89695
89695
269763
29721
59791
89695
209610
149700
209610
209610
59791
-1
29721
209610
89695
149700
89695
89695
149700
209610
89695
209610
269763
59791
89695
59791
209610
209610
209610
29721
89695
209610
59791
89695
89695
149700
29721
29721
59791
59791
29721
149700
149700
149700
2...

result:

ok ok

Test #4:

score: 0
Accepted
time: 153ms
memory: 6996kb

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
29871
120024
120024
29872
179677
209816
90063
90063
59824
29872
209816
120024
59824
209816
120024
149876
179677
59824
29871
149876
120024
149876
59824
269973
209816
179677
29871
120024
239818
149876
179677
29872
239818
29872
149876
149876
120024
...

result:

ok ok

Test #5:

score: 0
Accepted
time: 164ms
memory: 6344kb

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
59912
89929
59912
59912
59912
59912
30017
59912
269781
59912
59912
149833
89929
89929
179888
59912
149833
-1
239680
59912
59912
59912
269781
59912
59912
59912
59912
30017
269781
89929
59912
59912
59912
59912
269781
149833
59912
59912
59912
30018
30017
179888
30018
59912
59912
59912
59912...

result:

ok ok

Test #6:

score: 0
Accepted
time: 159ms
memory: 6112kb

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
149501
59597
59597
149501
89750
89750
59597
179553
59597
29668
59597
269967
149501
149501
59597
59597
59597
59597
59597
59597
269967
59597
59597
269967
209808
179553
269967
59597
59597
59597
59597
59597
89750
149501
89750
269967
59597
59597
59597
269967
29667
209808
59597
29668
59597
59597
14...

result:

ok ok

Test #7:

score: 0
Accepted
time: 145ms
memory: 6952kb

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
62885
-1
153067
153067
62885
-1
162026
62885
-1
-1
108288
50934
153067
-1
153067
-1
50934
-1
-1
153067
24072
62885
153067
153067
-1
168096
-1
-1
11995
-1
-1
30177
-1
20999
39023
-1
20999
210256
233864
269855
-1
62885
-1
-1
65877
-1
50934
-1
153067
-1
62885
39023
-1
-1
62885
-1
257912
-1
-1
-1
...

result:

ok ok

Test #8:

score: 0
Accepted
time: 138ms
memory: 6440kb

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: 212ms
memory: 5136kb

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
5832
38624
89629
11811
71398
59564
164479
44602
254981
158339
71398
197572
158339
158339
44602
158339
20674
80638
71398
14830
158339
158339
158339
158339
158339
71398
158339
288007
71398
-1
44602
158339
264004
71398
158339
224648
95610
116432
161432
158339
44602
98518
161432
89629
1583...

result:

ok ok

Test #10:

score: 0
Accepted
time: 211ms
memory: 5160kb

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:

20978
167793
92835
56877
167793
258008
20978
156030
203749
173786
47858
92835
138187
167793
167793
167793
92835
167793
258008
138187
167793
126151
167793
29893
167793
92835
44865
104896
167793
92835
203749
185730
80922
167793
248950
44865
185730
167793
44865
288039
-1
47858
138187
-1
44865
288039
10...

result:

ok ok

Test #11:

score: 0
Accepted
time: 133ms
memory: 5976kb

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:

299998
-1
-1
-1
299998
299998
-1
-1
299998
299998
299998
-1
299998
299998
299998
299998
299998
299998
-1
-1
299998
299998
-1
-1
299998
299998
299998
299998
-1
299998
-1
-1
-1
-1
-1
299998
-1
-1
-1
-1
299998
-1
299998
-1
299998
299998
299998
299998
-1
-1
299998
-1
-1
299998
299998
299998
299998
-1
29...

result:

ok ok

Test #12:

score: 0
Accepted
time: 130ms
memory: 5000kb

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:

299999
-1
299999
299999
-1
-1
-1
299999
-1
299999
299999
299999
299999
299999
299999
299999
299999
299999
-1
-1
299999
-1
-1
299999
-1
299999
299999
299999
299999
299999
299999
-1
-1
299999
299999
-1
-1
299999
299999
-1
-1
299999
299999
299999
-1
299999
-1
-1
299999
299999
-1
-1
-1
299999
-1
299999
...

result:

ok ok

Test #13:

score: 0
Accepted
time: 145ms
memory: 5008kb

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:

299984
-1
-1
299965
-1
-1
299871
299965
299965
299965
299979
299965
299979
299965
299965
299965
-1
299871
299871
299985
299965
299979
-1
299965
-1
299979
299984
-1
-1
299985
-1
299965
-1
299965
299979
-1
299965
-1
299979
-1
299965
-1
299965
-1
-1
299985
-1
-1
299979
299965
-1
-1
299965
299979
299871...

result:

ok ok

Test #14:

score: 0
Accepted
time: 146ms
memory: 6784kb

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
299988
299997
-1
299999
299988
-1
-1
-1
-1
299988
299988
-1
-1
-1
299965
299999
299965
-1
299997
-1
299965
299999
-1
-1
-1
299997
299999
299965
299965
-1
299996
299999
-1
299988
299988
299997
-1
299996
299999
299988
-1
-1
-1
299999
299999
-1
-1
-1
299965
-1
-1
299999
299965
-1
-1
299965
299988
29...

result:

ok ok

Test #15:

score: 0
Accepted
time: 142ms
memory: 6460kb

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:

299986
299994
299985
299993
299983
299986
299994
299993
299985
299986
299985
299953
299993
299983
299993
299985
299983
299994
299993
299985
299986
299986
299983
299953
299986
299983
299985
299986
299985
299994
299993
299983
299985
299994
299983
299994
299983
299983
299993
299986
299993
299994
299983...

result:

ok ok

Test #16:

score: 0
Accepted
time: 145ms
memory: 6876kb

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:

299987
299987
299993
299992
-1
299987
299987
299992
299987
-1
299993
299987
299992
299993
299990
299988
299988
299987
299988
299992
-1
-1
299987
299992
299988
299992
299988
299988
299987
299990
299987
299992
299990
-1
-1
299988
299987
299990
299990
-1
299992
299987
299993
299993
-1
299990
299990
299...

result:

ok ok

Test #17:

score: 0
Accepted
time: 140ms
memory: 5004kb

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:

299994
-1
299993
299862
-1
-1
299862
-1
299993
299936
299862
-1
299936
299936
299972
299862
-1
299994
-1
299737
-1
-1
299972
299737
-1
299972
299994
-1
299993
-1
-1
299737
-1
299993
299936
-1
-1
299994
299936
299862
299994
299936
299862
-1
-1
299862
299972
299862
299737
299737
299972
299862
299862
2...

result:

ok ok

Test #18:

score: 0
Accepted
time: 142ms
memory: 5128kb

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:

299981
299998
-1
299998
-1
299923
299981
-1
299993
-1
299998
-1
-1
-1
299991
-1
-1
-1
299923
-1
-1
-1
299923
-1
-1
-1
299981
299923
-1
-1
299998
-1
-1
299993
299993
-1
-1
299991
-1
-1
299998
299923
-1
299991
299991
-1
-1
299981
-1
-1
-1
299981
299991
-1
-1
299991
299998
299981
-1
-1
-1
-1
299998
-1
...

result:

ok ok

Test #19:

score: 0
Accepted
time: 340ms
memory: 253032kb

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:

145888
145888
145888
145888
12527
145888
278016
116776
278016
112412
278016
19530
45277
145888
145888
116776
56014
116456
145888
45277
145888
198238
108957
145888
190200
219526
136152
116776
145888
260174
226820
145888
145888
136152
226820
278016
224766
278016
209481
12527
224766
45277
198238
182989...

result:

ok ok

Test #20:

score: 0
Accepted
time: 339ms
memory: 255408kb

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:

247471
199902
15492
81660
255249
15492
15492
206877
112130
15492
15492
147533
132821
15492
179122
15492
81660
15492
15492
15492
15492
81660
247470
124931
294875
132821
241458
112130
132821
215355
81660
246169
279210
15492
81660
81660
205429
240256
60696
18615
27138
15492
138666
15492
199268
132821
2...

result:

ok ok

Extra Test:

score: -3
Extra Test Failed : Time Limit Exceeded on 2

input:

300000 300000
62926051 969076521 265217892 257186360 392691429 371051018 710099993 870916511 69814757 995314625 252597191 294764151 484905077 912409182 553360241 950866958 110446159 254377488 594074779 686820878 88573767 627025734 144210369 2158463 970249960 818395974 520939182 718342823 150542372 9...

output:

192862
209905
276640
208639
98003
141880
184553
72296
276323
149413
79354
262282
68628
297018
102884
103886
76640
137544
135920
89178
56504
220911
73283
275591
157337
97437
286055
50988
90515
240065
106465
291082
156098
174605
248021
85610
8975
261930
15751
287886
171701
34437
33772
118342
126506
26...

result: