87752024-01-29 18:54:32NagyLeoKutyavetélkedőpypy3Hibás válasz 0/100448ms199472 KiB
def max_points(K, N, M, pairs):
    can_do = [set() for i in range(N + 1)]
    for a, b in pairs:
        can_do[a].add(b)
    if T[0] > K and T[1] > K:
        return 0

    current_points = [0] * (N + 2)
    if T[N - 1] <= K:
        current_points[N - 1] = 1
    if T[N - 2] <= K:
        current_points[N - 2] = 1
        if T[N - 1] in can_do[T[N - 2]]:
            current_points[N - 2] = 2
    for i in range(N - 3, -1, -1):
        if T[i] <= K:
            current_points[i] = 1
            if T[i + 1] in can_do[T[i]]:
                current_points[i] = max(current_points[i], 1 + current_points[i + 1])
            if T[i + 2] in can_do[T[i]]:
                current_points[i] = max(current_points[i], 1 + current_points[i + 2])
        if T[i + 1] > K and T[i + 2] > K:
            return 0
        if T[i + 1] > K and T[i + 2] not in can_do[T[i]]:
            return 0
        if T[i + 1] not in can_do[T[i]] and T[i + 2] > K:
            return 0
        if T[i + 2] not in can_do[T[i]] and T[i + 1] not in can_do[T[i]] and T[i + 1] > K:
            return 0
    # print(current_points)

    return max(current_points[0], current_points[1])


N, K = map(int, input().split())
T = list(map(int, input().split()))
M = int(input())
pairs = [tuple(map(int, input().split())) for _ in range(M)]

print(max_points(K, N, M, pairs))
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva43ms77260 KiB
2Elfogadva41ms77824 KiB
subtask20/15
3Elfogadva39ms77828 KiB
4Elfogadva48ms78356 KiB
5Elfogadva43ms78596 KiB
6Elfogadva39ms78564 KiB
7Elfogadva119ms149996 KiB
8Hibás válasz103ms150408 KiB
9Hibás válasz98ms150492 KiB
subtask30/19
10Elfogadva41ms78616 KiB
11Elfogadva48ms79348 KiB
12Elfogadva43ms78972 KiB
13Elfogadva41ms79376 KiB
14Elfogadva48ms79784 KiB
15Hibás válasz45ms80128 KiB
16Hibás válasz48ms80036 KiB
subtask40/34
17Hibás válasz89ms92736 KiB
18Hibás válasz90ms93596 KiB
19Hibás válasz93ms94164 KiB
20Hibás válasz104ms95728 KiB
21Hibás válasz96ms94116 KiB
22Hibás válasz97ms93972 KiB
subtask50/32
23Hibás válasz175ms121324 KiB
24Hibás válasz215ms136108 KiB
25Hibás válasz240ms140976 KiB
26Hibás válasz222ms143564 KiB
27Hibás válasz224ms145548 KiB
28Hibás válasz326ms165460 KiB
29Hibás válasz407ms199472 KiB
30Elfogadva448ms199236 KiB
31Hibás válasz268ms176512 KiB
32Hibás válasz207ms149976 KiB
33Hibás válasz331ms182620 KiB
34Elfogadva344ms183544 KiB