QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#561260#8672. 排队Cleshm15 460ms30460kbC++143.9kb2024-09-12 21:29:382024-09-12 21:29:41

Judging History

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

  • [2024-09-12 21:29:41]
  • 评测
  • 测评结果:15
  • 用时:460ms
  • 内存:30460kb
  • [2024-09-12 21:29:38]
  • 提交

answer

#include "bits/stdc++.h"
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define ll long long
#define ull unsigned long long

#define OPEN freopen (".in", "r", stdin); freopen (".out", "w", stdout);
#define DATA freopen (".in", "w", stdout);

#define pc __builtin_popcount
#define db double
#define pii pair<int, int>
#define fi first
#define se second

#define F(i,x,y) for (int i = (x); i <= (y); ++i)
#define D(i,x,y) for (int i = (x); i >= (y); --i)

using namespace std;

const ll inf = 1ll * 1e18;
const ll mod = 998244353ll;
//const ll mod = 1ll * 1e9 + 7ll;

namespace FastIO {
	inline void Rd(int& x) {
		int f = 1;
		x = 0;
		char c = getchar();
		while (c < '0' || c > '9') {
			if (c == '-') f = -1;
			c = getchar();
		}
		while (c >= '0' && c <= '9') x = (x << 3) + (x << 1) + (c - 48), c = getchar();
		x *= f;
	}

	inline void Wt(int x) {
		if (x < 10) {
			putchar(x + 48);
			return;
		}
		Wt(x / 10);
		putchar((x % 10) + 48);
	}
}

namespace Maths {
	ll fac[560000];

	void init() {

		fac[0] = 1ll;

		F(i, 1, 500000) fac[i] = fac[i - 1] * i % mod;
	}

	ll qpow(ll x, ll y) {
		if (y == 0ll) return 1ll;

		ll w = qpow(x, y / 2ll);

		if (y % 2ll) return (w * w % mod) * x % mod;
		else return w * w % mod;
	}

	inline ll C(ll x, ll y) {
		return (fac[x] * qpow(fac[y], mod - 2ll) % mod) * qpow(fac[x - y], mod - 2ll) % mod;
	}

	inline ll div(ll x) {
		return qpow(x, mod - 2ll);
	}
}
int n, q;
namespace Sgt {
	int b[4000010], mn[4000010], mx[4000010];
	
	void Build (int l, int r, int p) {
		if (l == r) {
			if (l == 0) mn[p] = mx[p] = 0x3f3f3f3f;
			if (l == n + 1) mn[p] = mx[p] = -0x3f3f3f3f;
			return ;
		}
		int m = (l + r) >> 1;
		Build (l, m, p << 1); Build (m + 1, r, p << 1 | 1);
		mx[p] = max(mx[p << 1], mx[p << 1 | 1]);
		mn[p] = min(mn[p << 1], mn[p << 1 | 1]);
	}
	
	void Pushdown (int l, int r, int p) {
		int m = (l + r) >> 1;
		
		mn[p << 1] += b[p]; mn[p << 1 | 1] += b[p];
		mx[p << 1] += b[p]; mx[p << 1 | 1] += b[p];
		
		b[p << 1] += b[p]; b[p << 1 | 1] += b[p];
		
		b[p] = 0;
	}
	
	void Add (int l, int r, int s, int t, int p) {
		if (l <= s && t <= r) {
			mx[p] ++; mn[p] ++;
			++ b[p];
			return ;
		}
		
		Pushdown (s, t, p);
		
		int m = (s + t) >> 1;
		
		if (l <= m) Add (l, r, s, m, p <<1);
		if (m < r) Add (l, r, m + 1, t, p << 1 | 1);
		
		mx[p] = max(mx[p << 1], mx[p << 1 | 1]);
		mn[p] = min(mn[p << 1], mn[p << 1 | 1]);
	}
	
	int Lower (int l, int r, int p, int v) {
		if (l == r) return l;
		int m = (l + r) >> 1;
		Pushdown (l, r, p);
		if (mn[p << 1] < v) return Lower(l, m, p << 1, v);
		else return Lower (m + 1, r ,p << 1 | 1 , v);
	}
	
	int Upper (int l, int r, int p, int v) {
		if (l == r) return l;
		int m = (l + r) >> 1;
		Pushdown (l, r, p);
		if (mx[p << 1 | 1] > v) return Upper (m + 1 ,r , p << 1 | 1, v);
		else return Upper (l, m, p << 1, v);
	}
	
	int Query (int l, int r, int x, int p) {
		if (l == r) return mx[p];
		int m = (l + r) >> 1;
		Pushdown (l, r, p);
		if (x <= m) return Query (l, m, x, p << 1);
		else return Query (m + 1, r, x, p << 1 | 1);
	}
}
int L[1200000], R[1200000];

struct Opt {
	int l, r, id;
	bool operator <(const Opt& p) const {
		return r < p.r;
	}
}op[1200000];

int ans[1200000];

int main() {
	cin >> n >> q;
	Sgt::Build(0, n + 1, 1);
	F(i, 1, n) {
		cin >> L[i] >> R[i];
	}
	
	F(i, 1, q) {
		cin >> op[i].l >> op[i].r; op[i].id = i;
	}
	
	sort (op + 1, op + n + 1);
	
	for (int i = 1, j = 1; i <= n; ++ i) {
		int _l = Sgt::Upper(0, n + 1, 1, R[i]) + 1;
		int _r = Sgt::Lower(0, n + 1, 1, L[i]) - 1;
		
		cerr << _l << ' ' << _r << '\n';
		
		Sgt::Add(_l, _r, 0, n + 1, 1);
		
		for ( ;op[j].r == i; ++ j) {
			int Sum = Sgt::Query (0, n + 1, op[j].l, 1);
			ans[op[j].id] = Sum;
		}
	}
	
	F(i, 1, n) cout << ans[i] << '\n';
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 3ms
memory: 15916kb

input:

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

output:

1
3
3

result:

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

Subtask #2:

score: 15
Accepted

Test #12:

score: 15
Accepted
time: 357ms
memory: 24988kb

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: 320ms
memory: 22856kb

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: 351ms
memory: 24904kb

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: 344ms
memory: 24344kb

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: 327ms
memory: 26980kb

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: 399ms
memory: 27020kb

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: 400ms
memory: 24840kb

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: 421ms
memory: 24844kb

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: 411ms
memory: 24124kb

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: 336ms
memory: 24988kb

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: 460ms
memory: 30460kb

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:

66924
111708
126163
132413
120098
102704
37692
98793
128033
80150
79690
116437
69208
92134
93594
98099
101884
112279
127614
59270
94490
111798
125768
107354
108036
128159
89320
79166
111262
106291
126066
132027
58542
98003
74691
104523
128907
89201
116051
112539
70479
81798
34289
126309
80357
106226...

result:

wrong answer 1st numbers differ - expected: '19141', found: '66924'

Subtask #4:

score: 0
Wrong Answer

Test #32:

score: 0
Wrong Answer
time: 404ms
memory: 26376kb

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:

105145
72371
144864
170498
128126
33896
194613
176488
182631
171418
47021
196129
137242
30841
170298
193514
71618
159248
192356
164806
145584
135449
47740
31955
96276
113869
161543
150318
1419
150116
76764
195573
148580
100377
42149
140805
166293
100075
168756
192030
134566
158166
42648
131311
13525...

result:

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

Subtask #5:

score: 0
Skipped

Dependency #1:

0%

Subtask #6:

score: 0
Skipped

Dependency #5:

0%