108172024-04-15 18:58:14bovizdbTelefonközpontcpp17Hibás válasz 0/100199ms26276 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)
{
    while(a < b)
    {
        if (a%2 == 1)
            a++;
        if (b%2 == 0)
            b--;
        a /= 2;
        b /= 2;
    }
    return tree[a];
}

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álasz3ms2096 KiB
subtask20/20
3Hibás válasz3ms2452 KiB
4Hibás válasz3ms2412 KiB
5Hibás válasz3ms2664 KiB
6Hibás válasz3ms2988 KiB
7Hibás válasz3ms3216 KiB
8Hibás válasz3ms3420 KiB
9Hibás válasz3ms3748 KiB
subtask30/20
10Hibás válasz3ms2452 KiB
11Hibás válasz3ms2412 KiB
12Hibás válasz3ms2664 KiB
13Hibás válasz3ms2988 KiB
14Hibás válasz3ms3216 KiB
15Hibás válasz3ms3420 KiB
16Hibás válasz3ms3748 KiB
17Hibás válasz6ms4256 KiB
18Hibás válasz6ms4464 KiB
19Hibás válasz6ms4676 KiB
20Hibás válasz6ms4704 KiB
21Hibás válasz6ms4780 KiB
22Hibás válasz6ms4784 KiB
23Hibás válasz6ms4860 KiB
subtask40/60
24Hibás válasz3ms2452 KiB
25Hibás válasz3ms2412 KiB
26Hibás válasz3ms2664 KiB
27Hibás válasz3ms2988 KiB
28Hibás válasz3ms3216 KiB
29Hibás válasz3ms3420 KiB
30Hibás válasz3ms3748 KiB
31Hibás válasz6ms4256 KiB
32Hibás válasz6ms4464 KiB
33Hibás válasz6ms4676 KiB
34Hibás válasz6ms4704 KiB
35Hibás válasz6ms4780 KiB
36Hibás válasz6ms4784 KiB
37Hibás válasz6ms4860 KiB
38Hibás válasz199ms25004 KiB
39Hibás válasz194ms26080 KiB
40Hibás válasz195ms25088 KiB
41Hibás válasz197ms25048 KiB
42Hibás válasz194ms25596 KiB
43Hibás válasz196ms26192 KiB
44Hibás válasz194ms26276 KiB