QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#557579#8672. 排队-xcxxx-15 260ms77504kbC++143.2kb2024-09-11 10:21:182024-09-11 10:21:19

Judging History

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

  • [2024-09-11 10:21:19]
  • 评测
  • 测评结果:15
  • 用时:260ms
  • 内存:77504kb
  • [2024-09-11 10:21:18]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
int rd() {int x=0,f=1;char c=getchar();while(!isdigit(c))f=(c=='-'?-1:f),c=getchar();while(isdigit(c))x=x*10+c-'0',c=getchar();return x*f;}
const int N=1000005,inf=0x3f3f3f3f;
int n,Q,l[N],r[N],ans[N];
vector<int> ins[N],ers[N];
struct ChristmasTree {
    #define ls (p<<1)
    #define rs (p<<1|1)
    #define mid ((T[p].l+T[p].r)>>1)
    struct node {
        int l,r,mx,mn,tag;
        void upd(int x) {mx+=x,mn+=x,tag+=x;}
    }T[N<<2];
    void pushup(int p) {
        T[p].mx=max(T[ls].mx,T[rs].mx);
        T[p].mn=min(T[ls].mn,T[rs].mn);
    }
    void pushdown(int p) {
        T[ls].upd(T[p].tag);
        T[rs].upd(T[p].tag);
        T[p].tag=0;
    }
    void build(int l=1,int r=Q,int p=1) {
        T[p].l=l,T[p].r=r;
        T[p].mx=-inf,T[p].mn=inf;
        if(l==r) return;
        build(l,mid,ls);
        build(mid+1,r,rs);
    }
    void modify(int l,int r,int p=1) {
        if(T[p].l==l&&T[p].r==r) {
            T[p].upd(1);
            return;
        }
        pushdown(p);
        if(r<=mid) modify(l,r,ls);
        else if(mid<l) modify(l,r,rs);
        else modify(l,mid,ls),modify(mid+1,r,rs);
        pushup(p);
    }
    int qfst(int k,int p=1) {
        if(T[p].mn>k) return T[p].r+1;
        if(T[p].l==T[p].r) return T[p].l;
        pushdown(p);
        if(T[ls].mn<=k) return qfst(k,ls);
        else return qfst(k,rs);
    }
    int qlst(int k,int p=1) {
        if(T[p].mx<k) return T[p].l-1;
        if(T[p].l==T[p].r) return T[p].l;
        pushdown(p);
        if(T[rs].mx>=k) return qlst(k,rs);
        else return qlst(k,ls);
    }
    void insert(int pos,int p=1) {
        // fprintf(stderr,"insert [%d,%d] %d\n",T[p].l,T[p].r,pos);
        if(T[p].l==T[p].r) {
            T[p].mx=T[p].mn=0;
            return;
        }
        pushdown(p);
        if(pos<=mid) insert(pos,ls);
        else insert(pos,rs);
        pushup(p);
    }
    void erase(int pos,int p=1) {
        // fprintf(stderr,"erase [%d,%d] %d\n",T[p].l,T[p].r,pos);
        if(T[p].l==T[p].r) {
            T[p].mx=-inf,T[p].mn=inf;
            return;
        }
        pushdown(p);
        if(pos<=mid) erase(pos,ls);
        else erase(pos,rs);
        pushup(p);
    }
    int ask(int pos,int p=1) {
        if(T[p].l==T[p].r) return T[p].mx;
        pushdown(p);
        if(pos<=mid) return ask(pos,ls);
        else return ask(pos,rs);
    }
}tree;
signed main() {
    // freopen("queue.in","r",stdin);
    // freopen("queue.out","w",stdout);
    n=rd(),Q=rd();
    for(int i=1;i<=n;i++) l[i]=rd(),r[i]=rd();
    for(int i=1;i<=Q;i++) ins[rd()].push_back(i),ers[rd()].push_back(i);
    tree.build();
    for(int i=1;i<=n;i++) {
        // fprintf(stderr,"i=%d\n",i);
        for(int p:ins[i]) tree.insert(p);
        int L=tree.qfst(r[i]),R=tree.qlst(l[i]);
        // fprintf(stderr,"L=%d R=%d\n",L,R);
        // for(int j=1;j<=Q;j++) cerr<<tree.ask(j)<<' ';cerr<<endl;
        if(L<=R) tree.modify(L,R);
        // for(int j=1;j<=Q;j++) cerr<<tree.ask(j)<<' ';cerr<<endl;
        for(int p:ers[i]) {
            ans[p]=tree.ask(p);
            tree.erase(p);
        }
    }
    for(int i=1;i<=Q;i++) printf("%d\n",ans[i]);
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 10
Accepted
time: 4ms
memory: 57212kb

input:

3 3
0 0
1 2
0 2
1 1
1 3
2 3

output:

1
3
1

result:

ok 3 number(s): "1 3 1"

Test #2:

score: 0
Wrong Answer
time: 7ms
memory: 57640kb

input:

5000 5000
5 10
3 9
3 8
2 7
2 5
3 6
1 5
0 2
7 8
2 10
0 3
3 6
4 6
1 6
4 8
7 8
2 7
3 4
4 9
7 8
2 9
2 5
3 6
0 5
6 7
1 2
2 4
2 10
1 5
7 9
6 9
2 3
9 10
5 5
2 9
3 3
2 7
2 4
0 6
0 3
1 7
7 7
4 8
2 9
4 8
0 10
1 8
1 1
2 7
5 9
1 7
1 7
1 4
2 4
1 4
2 9
1 7
4 7
3 8
1 3
4 6
1 5
1 6
0 0
3 9
4 7
2 8
1 8
1 2
7 8
2 7
2...

output:

11
11
22
11
11
22
66
66
22
11
22
22
121
25
55
33
77
124
168
99
44
22
145
179
56
124
11
11
179
268
245
77
99
22
97
173
11
133
261
86
18
235
44
315
279
22
290
99
196
153
75
44
203
169
157
232
235
62
341
88
384
504
195
88
281
481
333
370
178
355
24
291
342
235
396
276
22
166
38
477
453
42
244
125
215
1...

result:

wrong answer 3rd numbers differ - expected: '11', found: '22'

Subtask #2:

score: 15
Accepted

Test #12:

score: 15
Accepted
time: 136ms
memory: 75408kb

input:

200000 200000
3 6
3 3
6 10
1 7
2 7
6 9
4 6
3 4
0 8
0 6
3 5
3 4
1 8
7 8
4 5
0 3
1 5
2 9
1 2
1 2
3 4
5 7
6 10
3 9
4 7
1 6
2 6
1 7
2 5
1 7
6 8
1 1
0 7
7 8
0 9
1 7
3 8
3 7
1 2
4 8
5 6
0 6
5 6
2 7
2 6
0 6
0 6
1 7
2 5
0 3
0 3
7 10
3 8
0 2
3 4
3 7
4 9
0 6
4 7
2 6
8 10
2 10
4 10
3 3
2 6
4 5
3 9
1 8
1 2
2 9
...

output:

11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
...

result:

ok 200000 numbers

Test #13:

score: 15
Accepted
time: 134ms
memory: 77504kb

input:

200000 200000
5 45
27 99
7 23
51 88
16 62
10 24
16 80
43 70
12 45
35 55
6 99
77 91
40 82
66 99
30 47
18 80
9 36
4 12
26 51
37 64
39 52
2 11
2 69
57 81
15 98
8 36
19 27
32 34
35 97
22 23
15 89
53 77
2 89
25 55
25 90
4 91
13 77
37 65
67 89
8 52
20 58
10 18
31 81
35 59
41 56
71 74
18 61
56 77
51 74
40 ...

output:

101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
0
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
10...

result:

ok 200000 numbers

Test #14:

score: 15
Accepted
time: 130ms
memory: 72608kb

input:

200000 200000
193 894
142 229
346 553
197 496
389 718
370 600
650 853
476 695
764 767
220 571
238 714
516 700
137 692
1 293
835 962
34 536
208 482
148 225
377 804
75 864
277 925
278 864
296 647
390 757
179 283
338 602
571 746
447 852
315 365
7 390
634 689
76 239
16 60
244 388
385 822
451 836
301 373...

output:

1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
961
999
1001
1001
1001
1001
1001
1001
981
1001
1001
1001
1001
1001
1001
1001
966
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001
1001...

result:

ok 200000 numbers

Test #15:

score: 15
Accepted
time: 139ms
memory: 72868kb

input:

200000 200000
3145 7698
6037 6154
6483 6707
6834 7442
7373 9621
5166 8045
7346 8938
2235 5518
2240 4134
586 3188
3845 8054
1258 5380
2409 2631
3360 5706
19 2771
1925 9642
6687 8264
4305 8055
2844 5474
2282 7810
1738 4706
1462 7466
17 6282
2481 6022
2363 2987
3633 4157
1460 2634
4866 8159
3154 5079
2...

output:

9965
10001
0
10001
10001
10001
9991
10001
4831
9935
5274
10001
10001
2
10001
10001
10001
10001
9991
10001
10001
10001
10001
9935
9994
10001
9742
10001
10001
0
9982
10001
10001
10001
10001
10001
80
0
9991
9763
8
10001
9975
9939
10001
10001
9092
9983
9333
10001
10001
10001
10001
10001
10001
10001
9965...

result:

ok 200000 numbers

Test #16:

score: 15
Accepted
time: 154ms
memory: 72584kb

input:

200000 200000
15540 44932
12196 33126
776 23774
35673 42863
31231 44618
16521 19781
8467 9747
5319 42216
13940 21955
3389 6981
22 11576
15248 17307
5734 35942
12762 45217
30349 47977
8869 11242
11199 25942
3415 10196
20104 40771
8813 28517
29726 34188
13420 13731
17526 30474
1033 44930
3143 10541
46...

output:

8
31
33781
8
161
3
618
14580
3
25947
1415
455
2
147
16877
21598
539
56
7425
6686
4
393
4
4
4378
176
24
1407
837
19
14
7146
7
19626
21422
9
20472
0
200
3514
2
380
35942
35129
1
216
3
312
1200
2519
4046
9
1734
1318
21862
3361
27414
52
38201
2303
635
235
1
17
271
24468
29
1029
1071
38200
10968
95
4
125...

result:

ok 200000 numbers

Test #17:

score: 15
Accepted
time: 199ms
memory: 72740kb

input:

200000 200000
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
0 10
0 11
0 12
0 13
0 14
0 15
0 16
0 17
0 18
0 19
0 20
0 21
0 22
0 23
0 24
0 25
0 26
0 27
0 28
0 29
0 30
0 31
0 32
0 33
0 34
0 35
0 36
0 37
0 38
0 39
0 40
0 41
0 42
0 43
0 44
0 45
0 46
0 47
0 48
0 49
0 50
0 51
0 52
0 53
0 54
0 55
0 56
0 57
0 58
0 59
...

output:

74058
156458
175945
88572
145372
79026
163392
139232
188241
158454
17719
20452
171150
171343
104047
159458
132045
70328
136937
64711
174467
69614
125002
131739
81388
166709
80139
138489
34431
142820
179669
125831
148484
115982
184021
189596
73421
151270
194210
134276
117448
129846
127920
160607
1132...

result:

ok 200000 numbers

Test #18:

score: 15
Accepted
time: 165ms
memory: 71928kb

input:

200000 200000
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
0 10
0 11
0 0
0 13
0 14
0 15
0 16
0 17
0 18
0 19
0 20
0 21
0 22
0 23
0 24
0 25
0 0
0 27
0 28
0 29
0 30
0 0
0 32
0 33
0 34
0 35
0 36
0 0
0 0
0 39
0 40
0 41
0 42
0 43
0 44
0 45
0 46
0 47
0 48
0 49
0 50
0 51
0 52
0 53
0 54
0 55
0 56
0 0
0 58
0 59
0 60
0...

output:

173310
165951
120854
142558
87420
163018
160623
76341
172338
95167
169845
31220
168100
132276
165092
84047
128575
138423
171800
154331
137251
163376
79848
167392
43722
41974
133487
110272
168461
91407
103766
57088
165360
154903
110464
80792
144277
102908
146051
175704
77052
168422
56979
126413
14964...

result:

ok 200000 numbers

Test #19:

score: 15
Accepted
time: 168ms
memory: 72056kb

input:

200000 200000
45 200000
27 200000
7 200000
51 200000
16 200000
10 200000
16 200000
43 200000
12 200000
35 200000
6 200000
77 200000
40 200000
66 200000
30 200000
18 200000
36 200000
12 200000
26 200000
37 200000
39 200000
11 200000
69 200000
57 200000
15 200000
8 200000
19 200000
32 200000
35 200000...

output:

131384
192629
61130
80247
87887
198740
163105
103211
176599
77117
195385
125105
27678
146598
146076
171154
143664
106375
184677
176668
63515
47861
66512
94607
61773
118863
110829
90228
162033
193193
118985
114311
63857
156350
94535
157429
67223
146494
96304
188983
139817
196687
121473
115649
160519
...

result:

ok 200000 numbers

Test #20:

score: 15
Accepted
time: 148ms
memory: 75256kb

input:

200000 200000
6 200000
3 200000
6 200000
7 200000
2 200000
9 200000
4 200000
3 200000
0 200000
6 200000
3 200000
3 200000
1 200000
8 200000
4 200000
3 200000
5 200000
2 200000
2 200000
2 200000
4 200000
5 200000
6 200000
3 200000
7 200000
1 200000
2 200000
7 200000
2 200000
1 200000
6 200000
1 20000...

output:

191039
169762
165539
174400
68195
177129
154654
147432
156994
76044
194413
99752
191624
151075
197252
164294
18272
88957
158459
84713
87887
43439
179674
131694
123135
59410
106882
159392
139714
64645
69698
100948
140917
103251
45494
170482
166885
104101
194216
145914
120315
76168
77653
141867
198409...

result:

ok 200000 numbers

Test #21:

score: 15
Accepted
time: 149ms
memory: 75196kb

input:

200000 200000
17611 69131
59430 76978
15340 23731
45422 61357
24684 32905
12111 30945
3173 53122
1908 18775
21868 25563
43076 69772
23316 73134
37315 71711
16622 29769
5311 27384
7573 9838
45306 81042
21408 85530
32497 55253
12816 72989
13973 55180
2256 48643
39562 81719
47954 61844
8166 64533
5302 ...

output:

1
2
6
0
2
0
0
0
3
7
1
2
0
0
2
10
1
0
0
1
13
0
2
2
0
4
0
1
7
0
4
14
1
1
0
2
0
0
0
0
5
0
14
4
0
2
14
0
2
0
0
2
1
0
2
1
0
8
10
0
0
8
3
0
10
4
1
1
0
0
13
3
0
4
0
1
1
2
0
1
8
4
1
0
0
5
2
8
0
0
0
1
1
0
0
0
4
9
9
7
2
0
2
13
3
0
0
2
0
0
0
1
0
5
10
5
13
1
0
7
10
1
2
3
0
0
1
5
1
5
0
0
1
0
1
0
1
0
1
7
4
1
0
3
...

result:

ok 200000 numbers

Subtask #3:

score: 0
Wrong Answer

Test #22:

score: 0
Wrong Answer
time: 260ms
memory: 75572kb

input:

200000 200000
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 0
0 9
0 10
0 0
0 0
0 13
0 14
0 0
0 16
0 17
0 18
0 19
0 0
0 21
0 22
0 23
0 0
0 0
0 0
0 0
0 28
0 0
0 30
0 31
0 32
0 33
0 34
0 35
0 0
0 0
0 38
0 39
0 40
0 41
0 42
0 43
0 44
0 45
0 46
0 0
0 48
0 49
0 50
0 51
0 52
0 53
0 54
0 55
0 56
0 57
0 0
0 59
0 60
0 0
0 0
...

output:

19141
39288
14841
58655
15427
4999
26338
93250
2826
78084
64070
55481
2565
15173
24866
57627
35887
51336
67554
44940
27730
24781
54503
26903
73201
7554
3836
41741
67891
104580
43523
3766
13007
31661
17265
85353
16596
28684
64017
56462
23861
47826
22754
86131
37684
44831
88820
36311
15846
33729
10006...

result:

wrong answer 18th numbers differ - expected: '51335', found: '51336'

Subtask #4:

score: 0
Wrong Answer

Test #32:

score: 0
Wrong Answer
time: 236ms
memory: 75572kb

input:

200000 200000
0 200000
1 200000
1 200000
0 200000
0 200000
1 200000
1 200000
1 200000
0 200000
1 200000
0 200000
0 200000
1 200000
0 200000
0 200000
0 200000
0 200000
1 200000
0 200000
0 200000
1 200000
0 200000
1 200000
1 200000
1 200000
1 200000
0 200000
0 200000
1 200000
2 200000
1 200000
2 20000...

output:

71225
21392
65746
47219
62293
29293
146311
136624
165312
81582
25124
120262
104926
12518
90916
31784
50073
15588
1518
106447
92329
71506
16695
4846
38213
34902
133281
98868
700
26264
6639
173461
61316
71682
15564
112193
125788
15305
41842
30380
24109
17436
10900
115179
22281
37582
101778
120170
1264...

result:

wrong answer 1st numbers differ - expected: '71224', found: '71225'

Subtask #5:

score: 0
Skipped

Dependency #1:

0%

Subtask #6:

score: 0
Skipped

Dependency #5:

0%