QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#371510 | #8301. Hold the Line | ucup-team052# | ML | 4109ms | 272568kb | C++14 | 2.2kb | 2024-03-30 13:29:17 | 2024-03-30 13:29:17 |
Judging History
answer
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
#define rep(i, a, b) for (int i = a; i <= b; i++)
#define per(i, a, b) for (int i = a; i >= b; i--)
using namespace std;
typedef unsigned long long ull;
typedef pair <int, int> pii;
typedef long long ll;
template <typename _T>
inline void read(_T &f) {
f = 0; _T fu = 1; char c = getchar();
while (c < '0' || c > '9') { if (c == '-') { fu = -1; } c = getchar(); }
while (c >= '0' && c <= '9') { f = (f << 3) + (f << 1) + (c & 15); c = getchar(); }
f *= fu;
}
template <typename T>
void print(T x) {
if (x < 0) putchar('-'), x = -x;
if (x < 10) putchar(x + 48);
else print(x / 10), putchar(x % 10 + 48);
}
template <typename T>
void print(T x, char t) {
print(x); putchar(t);
}
const int N = 5e5 + 5, INF = 1e9;
set <int> p[N << 2];
int T, n, m;
void ins(int u, int l, int r, int x, int y) {
p[u].insert(y);
if (l == r) return;
int mid = (l + r) >> 1;
if (mid >= x) ins(u << 1, l, mid, x, y);
else ins(u << 1 | 1, mid + 1, r, x, y);
}
int ans;
void query(int u, int L, int R, int l, int r, int x) {
if (!p[u].size()) return;
if (l <= L && R <= r) {
auto it = p[u].lower_bound(x);
if (it != p[u].end()) ans = min(ans, *it - x);
if (it != p[u].begin()) {
--it;
ans = min(ans, x - *it);
}
return;
}
int mid = (L + R) >> 1;
if (mid >= l) query(u << 1, L, mid, l, r, x);
if (mid + 1 <= r) query(u << 1 | 1, mid + 1, R, l, r, x);
}
int main() {
read(T);
while (T--) {
read(n); read(m);
for (int i = 1; i <= n * 4; i++) p[i].clear();
for (int i = 1; i <= m; i++) {
int opt; read(opt);
if (opt == 0) {
int x, y;
read(x); read(y);
ins(1, 1, n, x, y);
}
if (opt == 1) {
ans = INF;
int l, r, x;
read(l); read(r); read(x);
query(1, 1, n, l, r, x);
if (ans == INF) ans = -1;
print(ans, '\n');
}
}
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 8ms
memory: 97432kb
input:
1 3 5 1 1 3 2 0 1 1 0 3 3 1 1 2 2 1 2 3 2
output:
-1 1 1
result:
ok 3 lines
Test #2:
score: 0
Accepted
time: 301ms
memory: 97328kb
input:
3000 100 200 0 59 64091111 1 10 94 45205032 0 41 67249140 1 15 93 79570187 0 51 83215051 1 3 22 20062363 0 21 5188814 1 43 94 79642299 0 73 39313603 1 43 67 17001771 0 65 10784990 1 51 69 73368509 0 42 57377517 1 36 49 17483147 0 40 67280095 1 3 41 25139505 0 56 22833553 1 26 65 15640242 0 22 189761...
output:
18886079 12321047 -1 3572752 47089340 9277398 39894370 19950691 4855252 2221206 1596905 -1 3120922 34260194 3353597 -1 2499997 -1 15114024 1193064 49448136 734969 3981124 4159424 5836824 61155540 5163746 -1 283130 3982548 -1 -1 -1 9647216 2356693 8711627 379947 70230536 2637615 7856589 153976 148089...
result:
ok 700000 lines
Test #3:
score: 0
Accepted
time: 532ms
memory: 97948kb
input:
300 1000 2000 0 421 19938 1 153 254 35195 0 567 74665 1 88 371 61709 0 689 57559 1 39 744 67718 0 770 25816 1 576 955 75098 0 215 17619 1 133 133 29547 0 207 25038 1 929 965 45024 0 820 40726 1 245 505 82535 0 52 99669 1 631 819 77027 0 436 69966 1 102 243 65413 0 878 73531 1 331 759 23736 0 698 594...
output:
-1 -1 6947 17539 -1 -1 62597 19468 40375 3798 45299 -1 -1 11815 -1 -1 -1 6706 -1 -1 -1 9628 1883 -1 1822 -1 972 978 818 -1 3362 1758 53092 -1 712 -1 16697 -1 -1 1592 11462 -1 24068 12896 335 964 2836 29744 501 -1 -1 2298 1859 -1 6311 10290 2543 1589 838 920 7210 719 631 2781 -1 59401 2809 77412 1149...
result:
ok 700000 lines
Test #4:
score: 0
Accepted
time: 1111ms
memory: 104068kb
input:
30 10000 20000 0 6444 22597278 1 940 8167 40648977 0 630 71321002 1 4054 4055 30762754 0 303 59383865 1 3410 3454 1633609 0 3376 42435219 1 6856 7397 92892411 0 1534 14886520 1 474 1932 21770410 0 9387 10819286 1 1640 1726 34316178 0 7331 75627104 1 8763 8764 83586695 0 3923 78696653 1 5016 5016 923...
output:
18051699 -1 -1 -1 6883890 -1 -1 -1 44912717 2247991 -1 5148557 -1 4713193 6643123 2730913 -1 6589982 -1 -1 -1 -1 -1 3691582 -1 1774051 -1 41333276 -1 1422761 -1 -1 -1 -1 895071 -1 692358 -1 2207326 21917947 3850486 -1 53145894 -1 2896385 45348895 3875216 -1 2503573 514164 -1 -1 -1 10502418 -1 458238...
result:
ok 700000 lines
Test #5:
score: 0
Accepted
time: 4109ms
memory: 272568kb
input:
3 100000 200000 0 77354 7 1 24769 44491 1 0 75190 6 1 3816 98172 1 0 45000 4 1 54504 97112 6 0 27855 3 1 53289 54534 9 0 87688 1 1 13220 13577 1 0 31245 7 1 4547 4547 3 0 43311 1 1 429 429 6 0 30798 2 1 28708 84952 4 0 99958 4 1 22719 22734 6 0 46564 3 1 1612 1664 7 0 95692 9 1 77806 93572 9 0 91654...
output:
-1 5 0 -1 -1 -1 -1 0 -1 -1 8 1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 2 -1 -1 -1 -1 -1 3 2 -1 -1 -1 -1 -1 -1 -1 1 -1 1 0 -1 2 0 2 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 6 -1 2 0 -1 5 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 0 1 -1 -1 0 0 -1 4 8 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 1 0 0 -1 -1 -1 0 -1 -1 -1...
result:
ok 500000 lines
Test #6:
score: -100
Memory Limit Exceeded
input:
1 500000 1000000 0 500000 10611289 1 449739 449917 13213816 0 1 94492701 1 21362 21393 55157967 0 499999 22844866 1 188062 188899 88627032 0 2 16392895 1 436969 437010 47518757 0 499998 74741014 1 339202 339203 89522398 0 3 97448236 1 351554 351622 37177728 0 499997 93234547 1 104463 104504 40778310...
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 ...