7731 2024. 01. 10 18:54:29 Satya Tom és Jerry 1 (80) python3 Időlimit túllépés 20/80 600ms 67124 KiB
beolvas = input()
beolvas = beolvas.strip().split(' ')
n = int(beolvas[0])
m = int(beolvas[1])
t = int(beolvas[2])
p = int(beolvas[3])
e = int(beolvas[4])
graf = []
kezd = []

for i in range(n+1):
    graf.append([])

for i in range(m):
    beolvas = input()
    beolvas = beolvas.strip().split(' ')
    lista = [beolvas[1], beolvas[2]]
    graf[int(beolvas[0])].append(lista)
    lista2 = [beolvas[0], beolvas[2]]
    graf[int(beolvas[1])].append(lista2)


for i in range(p):
    k = int(input())
    kezd.append(k)

tom_tav = [-1]*(n+1)
tom_tav[6] = 0

def tomBejar(t, depth):
    global tom_tav
    for i in range(len(graf[t])):
        if int(graf[t][i][1]) == 2:
            if tom_tav[int(graf[t][i][0])] == -1 or tom_tav[int(graf[t][i][0])] > depth:
                tom_tav[int(graf[t][i][0])] = depth
                tomBejar(int(graf[t][i][0]), depth+1)

tomBejar(t, 1)

jerry_nyer = ['NEM']*p
jerry_tav = [-1]*(n+1)

def jerryBejar(index, j, depth):
    global jerry_nyer
    for i in range(len(graf[j])):
        if tom_tav[int(graf[j][i][0])] == -1:
            if int(graf[j][i][0]) == e:
                jerry_nyer[index] = 'IGEN'
                return
            elif jerry_tav[int(graf[j][i][0])] == -1:
                jerry_tav[int(graf[j][i][0])] = depth+1
                jerryBejar(index, int(graf[j][i][0]), depth+1)
            elif jerry_tav[int(graf[j][i][0])] > depth+1:
                jerry_tav[int(graf[j][i][0])] = depth+1
                jerryBejar(index, int(graf[j][i][0]), depth+1)
        elif depth+1 < tom_tav[int(graf[j][i][0])]:
            if int(graf[j][i][0]) == e:
                jerry_nyer[index] = 'IGEN'
                return
            else:
                if jerry_tav[int(graf[j][i][0])] == -1:
                    jerry_tav[int(graf[j][i][0])] = depth + 1
                    jerryBejar(index, int(graf[j][i][0]), depth + 1)
                elif jerry_tav[int(graf[j][i][0])] > depth+1:
                    jerry_tav[int(graf[j][i][0])] = depth + 1
                    jerryBejar(index, int(graf[j][i][0]), depth + 1)

for i in range(p):
    jerry_tav = [-1] * (n + 1)
    jerry_tav[kezd[i]] = 0
    jerryBejar(i, kezd[i], 0)

for i in jerry_nyer:
    print(i)
Részfeladat Összpont Teszt Verdikt Idő Memória
base 20/80
1 Elfogadva 0/0 19ms 11940 KiB
2 Időlimit túllépés 0/0 600ms 5204 KiB
3 Elfogadva 4/4 17ms 12584 KiB
4 Elfogadva 4/4 18ms 12620 KiB
5 Elfogadva 4/4 24ms 12612 KiB
6 Elfogadva 4/4 26ms 12940 KiB
7 Elfogadva 4/4 94ms 13484 KiB
8 Időlimit túllépés 0/4 510ms 14748 KiB
9 Időlimit túllépés 0/4 523ms 15456 KiB
10 Időlimit túllépés 0/4 564ms 6772 KiB
11 Futási hiba 0/4 59ms 21860 KiB
12 Futási hiba 0/4 71ms 24452 KiB
13 Futási hiba 0/4 97ms 29396 KiB
14 Futási hiba 0/4 230ms 43504 KiB
15 Futási hiba 0/4 360ms 55676 KiB
16 Futási hiba 0/4 363ms 58780 KiB
17 Futási hiba 0/4 326ms 67124 KiB
18 Futási hiba 0/4 335ms 54968 KiB
19 Futási hiba 0/4 331ms 54036 KiB
20 Futási hiba 0/4 279ms 54516 KiB
21 Futási hiba 0/4 312ms 52252 KiB
22 Futási hiba 0/4 321ms 66836 KiB