8934 2024. 02. 05 18:29:42 NagyLeo Színes szobák (50 pont) python3 Elfogadva 50/50 234ms 48880 KiB
from sys import stdin, stdout

input = stdin.readline

def print(x):
    stdout.write(str(x) + "\n")


def main():
    N, K, M = map(int, input().split())
    rooms_raw = list(map(int, input().split()))
    rooms = []

    for i in rooms_raw:
        rooms.append([i, 1])

    left_people = 0
    for i in range(M):
        color, direct = map(int, input().split())

        for j in range(N):
            if rooms[j][0] == color:
                if j + direct > N - 1 or j + direct < 0:
                    left_people += rooms[j][1]
                    rooms[j][1] = 0
                else:
                    rooms[j + direct][1] += rooms[j][1]
                    rooms[j][1] = 0
    print(left_people)


def main2():
    N, K, M = map(int, input().split())
    rooms = [int(x) for x in input().split()]

    left_people = 0
    rules=[0]*M
    for i in range(M):
        rules[i]=[int(x) for x in input().split()]

    def kijute(i):
        # az i. emberrel mi tortenik?
        # balra, nem jut ki , jobbra  -1, 0, 1

        for j in range(M):
            if rooms[i] == rules[j][0]:
                i += rules[j][1]
                if i > N - 1:
                    return 1
                elif i < 0:
                    return -1

        return 0

    elso = kijute(0)
    utolso = kijute(N - 1)
    # jobbra:
    lo = 0
    hi = N - 1
    if elso == 1:
        print(N)
        return
    if utolso != 1:
        pass
    else:
        while hi - lo > 1:
            half = (hi + lo) // 2
            if kijute(half) == 1:
                hi = half
            else:
                lo = half
        left_people += N - hi
    # balra:
    lo = 0
    hi = N - 1
    if utolso == -1:
        print(N)
        return
    if elso != -1:
        pass
    else:
        while hi - lo > 1:
            half = (hi + lo) // 2
            if kijute(half) == -1:
                lo = half
            else:
                hi = half
        left_people += hi

    print(left_people)


def main3():
    N, K, M = map(int, input().split())
    rooms = [0] + [int(x) for x in input().split()] + [0]

    left_people = 0
    rules = [0] * M
    for i in range(M):
        rules[i] = [int(x) for x in input().split()]

    left_pos = 0
    right_pos = N + 1
    for i in range(M - 1, -1, -1):
        if rules[i][1] == -1 and rules[i][0] == rooms[left_pos + 1]:
            left_pos += 1
        if rules[i][1] == 1 and rules[i][0] == rooms[left_pos]:
            left_pos -= 1
        if rules[i][1] == 1 and rules[i][0] == rooms[right_pos - 1]:
            right_pos -= 1
        if rules[i][1] == -1 and rules[i][0] == rooms[right_pos]:
            right_pos += 1
    print(left_pos + (N + 1 - right_pos))


main3()
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 18ms 11888 KiB
2 Elfogadva 0/0 231ms 47260 KiB
3 Elfogadva 1/1 19ms 12544 KiB
4 Elfogadva 1/1 19ms 12556 KiB
5 Elfogadva 1/1 19ms 12480 KiB
6 Elfogadva 1/1 19ms 12492 KiB
7 Elfogadva 1/1 19ms 13060 KiB
8 Elfogadva 1/1 20ms 13156 KiB
9 Elfogadva 1/1 21ms 13032 KiB
10 Elfogadva 1/1 24ms 14032 KiB
11 Elfogadva 1/1 20ms 13556 KiB
12 Elfogadva 1/1 23ms 14092 KiB
13 Elfogadva 1/1 37ms 16468 KiB
14 Elfogadva 1/1 25ms 14936 KiB
15 Elfogadva 1/1 26ms 14940 KiB
16 Elfogadva 1/1 35ms 16284 KiB
17 Elfogadva 1/1 39ms 16556 KiB
18 Elfogadva 1/1 39ms 16600 KiB
19 Elfogadva 1/1 122ms 36368 KiB
20 Elfogadva 1/1 231ms 48804 KiB
21 Elfogadva 1/1 155ms 38880 KiB
22 Elfogadva 1/1 172ms 41480 KiB
23 Elfogadva 1/1 214ms 46256 KiB
24 Elfogadva 1/1 232ms 48880 KiB
25 Elfogadva 1/1 232ms 48656 KiB
26 Elfogadva 1/1 231ms 48788 KiB
27 Elfogadva 3/3 229ms 43136 KiB
28 Elfogadva 3/3 231ms 43104 KiB
29 Elfogadva 3/3 230ms 42896 KiB
30 Elfogadva 3/3 231ms 43148 KiB
31 Elfogadva 3/3 234ms 42876 KiB
32 Elfogadva 3/3 231ms 43004 KiB
33 Elfogadva 4/4 122ms 28516 KiB
34 Elfogadva 4/4 216ms 41100 KiB