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