QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#561260 | #8672. 排队 | Cleshm | 15 | 460ms | 30460kb | C++14 | 3.9kb | 2024-09-12 21:29:38 | 2024-09-12 21:29:41 |
Judging History
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%