108192024-04-15 19:14:44bovizdbTelefonközpontcpp17Hibás válasz 0/100200ms25888 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--;
        if (a > b)
            break;
        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álasz3ms2084 KiB
subtask20/20
3Hibás válasz3ms2200 KiB
4Hibás válasz3ms2520 KiB
5Hibás válasz3ms2664 KiB
6Hibás válasz3ms2876 KiB
7Hibás válasz3ms3208 KiB
8Hibás válasz3ms3152 KiB
9Hibás válasz3ms3372 KiB
subtask30/20
10Hibás válasz3ms2200 KiB
11Hibás válasz3ms2520 KiB
12Hibás válasz3ms2664 KiB
13Hibás válasz3ms2876 KiB
14Hibás válasz3ms3208 KiB
15Hibás válasz3ms3152 KiB
16Hibás válasz3ms3372 KiB
17Hibás válasz6ms3676 KiB
18Hibás válasz6ms3796 KiB
19Hibás válasz6ms3776 KiB
20Hibás válasz6ms3548 KiB
21Hibás válasz6ms3672 KiB
22Hibás válasz6ms3680 KiB
23Hibás válasz6ms3928 KiB
subtask40/60
24Hibás válasz3ms2200 KiB
25Hibás válasz3ms2520 KiB
26Hibás válasz3ms2664 KiB
27Hibás válasz3ms2876 KiB
28Hibás válasz3ms3208 KiB
29Hibás válasz3ms3152 KiB
30Hibás válasz3ms3372 KiB
31Hibás válasz6ms3676 KiB
32Hibás válasz6ms3796 KiB
33Hibás válasz6ms3776 KiB
34Hibás válasz6ms3548 KiB
35Hibás válasz6ms3672 KiB
36Hibás válasz6ms3680 KiB
37Hibás válasz6ms3928 KiB
38Hibás válasz200ms24304 KiB
39Hibás válasz197ms25296 KiB
40Hibás válasz195ms24592 KiB
41Hibás válasz195ms24584 KiB
42Hibás válasz199ms25092 KiB
43Hibás válasz197ms25508 KiB
44Hibás válasz197ms25888 KiB