108262024-04-16 08:23:41TomaSajtTelefonközpontcpp17Elfogadva 100/100167ms18496 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ÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1832 KiB
2Elfogadva3ms2056 KiB
subtask220/20
3Elfogadva3ms2292 KiB
4Elfogadva3ms2456 KiB
5Elfogadva3ms2676 KiB
6Elfogadva3ms2888 KiB
7Elfogadva3ms2976 KiB
8Elfogadva3ms3180 KiB
9Elfogadva3ms3068 KiB
subtask320/20
10Elfogadva3ms2292 KiB
11Elfogadva3ms2456 KiB
12Elfogadva3ms2676 KiB
13Elfogadva3ms2888 KiB
14Elfogadva3ms2976 KiB
15Elfogadva3ms3180 KiB
16Elfogadva3ms3068 KiB
17Elfogadva6ms3588 KiB
18Elfogadva6ms3880 KiB
19Elfogadva6ms3756 KiB
20Elfogadva6ms4028 KiB
21Elfogadva6ms4060 KiB
22Elfogadva6ms4000 KiB
23Elfogadva6ms4008 KiB
subtask460/60
24Elfogadva3ms2292 KiB
25Elfogadva3ms2456 KiB
26Elfogadva3ms2676 KiB
27Elfogadva3ms2888 KiB
28Elfogadva3ms2976 KiB
29Elfogadva3ms3180 KiB
30Elfogadva3ms3068 KiB
31Elfogadva6ms3588 KiB
32Elfogadva6ms3880 KiB
33Elfogadva6ms3756 KiB
34Elfogadva6ms4028 KiB
35Elfogadva6ms4060 KiB
36Elfogadva6ms4000 KiB
37Elfogadva6ms4008 KiB
38Elfogadva167ms17864 KiB
39Elfogadva165ms18196 KiB
40Elfogadva165ms18300 KiB
41Elfogadva160ms18260 KiB
42Elfogadva160ms18252 KiB
43Elfogadva162ms18368 KiB
44Elfogadva164ms18496 KiB