9287 2024. 02. 19 20:01:57 UVince Színes szobák (50 pont) cpp17 Elfogadva 50/50 41ms 8788 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

vector<int> v;
vector<pair<int, int>> q;

int check(int n)
{
    int side = 0;
    for (auto [c, x] : q)
    {
        if (v[n] == c)
            n += x;
        if (n < 0)
        {
            side = -1;
            break;
        }
        if (n >= v.size())
        {
            side = 1;
            break;
        }
    }
    return side;
}

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n, k, m;
    cin >> n >> k >> m;
    v.resize(n);
    q.resize(m);
    for (int i = 0; i < n; i++)
    {
        cin >> v[i];
    }
    for (int i = 0; i < m; i++)
    {
        cin >> q[i].first >> q[i].second;
    }
    int ans = 0;
    int l = -1, r = n;

    while (l + 1 < r)
    {
        int cur = (l + r) / 2;
        int side = check(cur);
        if (side == -1)
        {
            l = cur;
        }
        else
        {
            r = cur;
        }
    }
    ans += l + 1;

    l = -1;
    r = n;
    while (l + 1 < r)
    {
        int cur = (l + r) / 2;
        int side = check(cur);
        if (side == 1)
        {
            r = cur;
        }
        else
        {
            l = cur;
        }
    }
    ans += n - r;
    cout << ans;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1892 KiB
2 Elfogadva 0/0 41ms 4460 KiB
3 Elfogadva 1/1 3ms 2444 KiB
4 Elfogadva 1/1 3ms 2524 KiB
5 Elfogadva 1/1 3ms 2732 KiB
6 Elfogadva 1/1 3ms 2708 KiB
7 Elfogadva 1/1 3ms 2708 KiB
8 Elfogadva 1/1 3ms 2836 KiB
9 Elfogadva 1/1 3ms 2924 KiB
10 Elfogadva 1/1 3ms 3204 KiB
11 Elfogadva 1/1 3ms 3196 KiB
12 Elfogadva 1/1 3ms 3548 KiB
13 Elfogadva 1/1 4ms 3572 KiB
14 Elfogadva 1/1 4ms 3780 KiB
15 Elfogadva 1/1 4ms 3748 KiB
16 Elfogadva 1/1 6ms 4068 KiB
17 Elfogadva 1/1 6ms 4012 KiB
18 Elfogadva 1/1 6ms 4004 KiB
19 Elfogadva 1/1 24ms 5224 KiB
20 Elfogadva 1/1 41ms 6216 KiB
21 Elfogadva 1/1 29ms 5888 KiB
22 Elfogadva 1/1 32ms 5892 KiB
23 Elfogadva 1/1 37ms 6024 KiB
24 Elfogadva 1/1 41ms 6420 KiB
25 Elfogadva 1/1 41ms 6424 KiB
26 Elfogadva 1/1 41ms 6424 KiB
27 Elfogadva 3/3 39ms 6808 KiB
28 Elfogadva 3/3 39ms 7192 KiB
29 Elfogadva 3/3 39ms 7568 KiB
30 Elfogadva 3/3 39ms 7880 KiB
31 Elfogadva 3/3 39ms 8260 KiB
32 Elfogadva 3/3 39ms 8788 KiB
33 Elfogadva 4/4 20ms 7564 KiB
34 Elfogadva 4/4 34ms 8596 KiB