108202024-04-15 19:17:36bovizdbTelefonközpontcpp17Hibás válasz 0/100217ms25912 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++]);
        if (a > b)
            break;
        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ÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1892 KiB
2Hibás válasz3ms2120 KiB
subtask20/20
3Hibás válasz3ms2508 KiB
4Hibás válasz3ms2816 KiB
5Hibás válasz3ms3096 KiB
6Hibás válasz3ms3060 KiB
7Hibás válasz3ms3396 KiB
8Hibás válasz3ms3720 KiB
9Hibás válasz3ms3700 KiB
subtask30/20
10Hibás válasz3ms2508 KiB
11Hibás válasz3ms2816 KiB
12Hibás válasz3ms3096 KiB
13Hibás válasz3ms3060 KiB
14Hibás válasz3ms3396 KiB
15Hibás válasz3ms3720 KiB
16Hibás válasz3ms3700 KiB
17Hibás válasz6ms3888 KiB
18Hibás válasz6ms4020 KiB
19Hibás válasz6ms4112 KiB
20Hibás válasz6ms4112 KiB
21Hibás válasz6ms4244 KiB
22Hibás válasz6ms4200 KiB
23Hibás válasz6ms4316 KiB
subtask40/60
24Hibás válasz3ms2508 KiB
25Hibás válasz3ms2816 KiB
26Hibás válasz3ms3096 KiB
27Hibás válasz3ms3060 KiB
28Hibás válasz3ms3396 KiB
29Hibás válasz3ms3720 KiB
30Hibás válasz3ms3700 KiB
31Hibás válasz6ms3888 KiB
32Hibás válasz6ms4020 KiB
33Hibás válasz6ms4112 KiB
34Hibás válasz6ms4112 KiB
35Hibás válasz6ms4244 KiB
36Hibás válasz6ms4200 KiB
37Hibás válasz6ms4316 KiB
38Hibás válasz217ms24492 KiB
39Hibás válasz212ms25668 KiB
40Hibás válasz211ms24772 KiB
41Hibás válasz215ms24780 KiB
42Hibás válasz211ms25372 KiB
43Hibás válasz210ms25912 KiB
44Hibás válasz210ms25816 KiB