10821 2024. 04. 15 19:50:10 bovizdb Telefonközpont cpp17 Elfogadva 100/100 216ms 26192 KiB
#include <bits/stdc++.h>
 
using namespace std;
 
#define ll long long
#define pll pair<ll, ll>
#define fs first
#define sc second
#define vll vector<ll>
#define v2ll vector<vll>

ll m, n, q;
priority_queue<pll> calls;
priority_queue<ll> finish;
vll tree;

ll ans(ll a, ll b)
{
    ll res = 0;
    while(a <= b)
    {
        if (a%2 == 1)
            res = max(res, tree[a++]);
        if (b%2 == 0)
            res = max(res, tree[b--]);
        a /= 2;
        b /= 2;
    }
    return res;
}

void solve()
{
    cin >> m >> n >> q;
    ll k = 1;
    while(k < m)
        k *= 2;
    tree.resize(2*k);
    for (ll i = 0; i < n; i++)
    {
        ll k, v;
        cin >> k >> v;
        k--; v--;
        calls.push({-k, -v});
    }
    ll pcs = 0;
    for (ll i = 0; i < m; i++)
    {
        while(!calls.empty() && -(calls.top().fs) == i)
        {
            pcs++;
            finish.push(calls.top().sc);
            calls.pop();
        }
        while(finish.size() > 0 && -finish.top() < i)
        {
            pcs--;
            finish.pop();
        }
        tree[k+i] = pcs;
    }
    for (ll i = 2*k-1; i > 0; i-=2)
    {
        tree[i/2] = max(tree[i], tree[i-1]);
    }
    for (ll i = 0; i < q; i++)
    {
        ll l, r;
        cin >> l >> r;
        l--; r--;
        cout << ans(l+k, r+k) << "\n";
    }
}
 
signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);
    ll t = 1;
    //cin >> t;
    while(t--)
    {
        solve();
    }
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1888 KiB
2 Elfogadva 3ms 2128 KiB
subtask2 20/20
3 Elfogadva 3ms 2500 KiB
4 Elfogadva 3ms 2784 KiB
5 Elfogadva 3ms 2992 KiB
6 Elfogadva 3ms 2836 KiB
7 Elfogadva 3ms 3160 KiB
8 Elfogadva 3ms 3112 KiB
9 Elfogadva 3ms 3244 KiB
subtask3 20/20
10 Elfogadva 3ms 2500 KiB
11 Elfogadva 3ms 2784 KiB
12 Elfogadva 3ms 2992 KiB
13 Elfogadva 3ms 2836 KiB
14 Elfogadva 3ms 3160 KiB
15 Elfogadva 3ms 3112 KiB
16 Elfogadva 3ms 3244 KiB
17 Elfogadva 6ms 3860 KiB
18 Elfogadva 6ms 3976 KiB
19 Elfogadva 6ms 4224 KiB
20 Elfogadva 6ms 4296 KiB
21 Elfogadva 6ms 4224 KiB
22 Elfogadva 6ms 4332 KiB
23 Elfogadva 6ms 4444 KiB
subtask4 60/60
24 Elfogadva 3ms 2500 KiB
25 Elfogadva 3ms 2784 KiB
26 Elfogadva 3ms 2992 KiB
27 Elfogadva 3ms 2836 KiB
28 Elfogadva 3ms 3160 KiB
29 Elfogadva 3ms 3112 KiB
30 Elfogadva 3ms 3244 KiB
31 Elfogadva 6ms 3860 KiB
32 Elfogadva 6ms 3976 KiB
33 Elfogadva 6ms 4224 KiB
34 Elfogadva 6ms 4296 KiB
35 Elfogadva 6ms 4224 KiB
36 Elfogadva 6ms 4332 KiB
37 Elfogadva 6ms 4444 KiB
38 Elfogadva 216ms 24600 KiB
39 Elfogadva 210ms 25696 KiB
40 Elfogadva 209ms 24968 KiB
41 Elfogadva 209ms 25008 KiB
42 Elfogadva 208ms 25756 KiB
43 Elfogadva 209ms 26104 KiB
44 Elfogadva 210ms 26192 KiB