10826 | 2024-04-16 08:23:41 | TomaSajt | Telefonközpont | cpp17 | Elfogadva 100/100 | 167ms | 18496 KiB |
#include <bits/stdc++.h>
#define int long long
using namespace std;
struct segtree {
int len = 0;
vector<int> v;
segtree(const vector<int>& data)
: len(data.size()), v(data.size() * 4, INT_MIN) {
build(data, 0, len, 0);
}
void build(const vector<int>& data, int lx, int rx, int x) {
if (lx + 1 == rx) {
v[x] = data[lx];
return;
}
int m = (lx + rx) / 2;
build(data, lx, m, 2 * x + 1);
build(data, m, rx, 2 * x + 2);
v[x] = max(v[2 * x + 1], v[2 * x + 2]);
}
int get(int ql, int qr) {
return get(ql, qr, 0, len, 0);
}
int get(int ql, int qr, int xl, int xr, int x) {
if (qr <= xl || xr <= ql) return INT_MIN;
if (ql <= xl && xr <= qr) return v[x];
int m = (xl + xr) / 2;
return max(get(ql, qr, xl, m, 2 * x + 1), get(ql, qr, m, xr, 2 * x + 2));
}
};
signed main() {
ios::sync_with_stdio(0), cin.tie(0);
int m, n, q;
cin >> m >> n >> q;
vector<int> diffs(m + 2), x(m + 2);
while (n--) {
int s, e;
cin >> s >> e;
diffs[s]++;
diffs[e + 1]--;
}
partial_sum(diffs.begin(), diffs.end(), x.begin());
segtree st(x);
while (q--) {
int l, r;
cin >> l >> r;
cout << st.get(l, r + 1) << '\n';
}
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 3ms | 1832 KiB | ||||
2 | Elfogadva | 3ms | 2056 KiB | ||||
subtask2 | 20/20 | ||||||
3 | Elfogadva | 3ms | 2292 KiB | ||||
4 | Elfogadva | 3ms | 2456 KiB | ||||
5 | Elfogadva | 3ms | 2676 KiB | ||||
6 | Elfogadva | 3ms | 2888 KiB | ||||
7 | Elfogadva | 3ms | 2976 KiB | ||||
8 | Elfogadva | 3ms | 3180 KiB | ||||
9 | Elfogadva | 3ms | 3068 KiB | ||||
subtask3 | 20/20 | ||||||
10 | Elfogadva | 3ms | 2292 KiB | ||||
11 | Elfogadva | 3ms | 2456 KiB | ||||
12 | Elfogadva | 3ms | 2676 KiB | ||||
13 | Elfogadva | 3ms | 2888 KiB | ||||
14 | Elfogadva | 3ms | 2976 KiB | ||||
15 | Elfogadva | 3ms | 3180 KiB | ||||
16 | Elfogadva | 3ms | 3068 KiB | ||||
17 | Elfogadva | 6ms | 3588 KiB | ||||
18 | Elfogadva | 6ms | 3880 KiB | ||||
19 | Elfogadva | 6ms | 3756 KiB | ||||
20 | Elfogadva | 6ms | 4028 KiB | ||||
21 | Elfogadva | 6ms | 4060 KiB | ||||
22 | Elfogadva | 6ms | 4000 KiB | ||||
23 | Elfogadva | 6ms | 4008 KiB | ||||
subtask4 | 60/60 | ||||||
24 | Elfogadva | 3ms | 2292 KiB | ||||
25 | Elfogadva | 3ms | 2456 KiB | ||||
26 | Elfogadva | 3ms | 2676 KiB | ||||
27 | Elfogadva | 3ms | 2888 KiB | ||||
28 | Elfogadva | 3ms | 2976 KiB | ||||
29 | Elfogadva | 3ms | 3180 KiB | ||||
30 | Elfogadva | 3ms | 3068 KiB | ||||
31 | Elfogadva | 6ms | 3588 KiB | ||||
32 | Elfogadva | 6ms | 3880 KiB | ||||
33 | Elfogadva | 6ms | 3756 KiB | ||||
34 | Elfogadva | 6ms | 4028 KiB | ||||
35 | Elfogadva | 6ms | 4060 KiB | ||||
36 | Elfogadva | 6ms | 4000 KiB | ||||
37 | Elfogadva | 6ms | 4008 KiB | ||||
38 | Elfogadva | 167ms | 17864 KiB | ||||
39 | Elfogadva | 165ms | 18196 KiB | ||||
40 | Elfogadva | 165ms | 18300 KiB | ||||
41 | Elfogadva | 160ms | 18260 KiB | ||||
42 | Elfogadva | 160ms | 18252 KiB | ||||
43 | Elfogadva | 162ms | 18368 KiB | ||||
44 | Elfogadva | 164ms | 18496 KiB |