Police 5 10/100

sto provando a risolvere police 5 ma il mio codice non risolve parecchie task oltre a dare l’errore “returned nonzero” in alcuni casi e non riesco a capire a cosa sia dovuto

N, M, T = map(int, input().strip().split())
A = [0] * M
B = [0] * M
C = [0] * M
E = [0] * M
for j in range(M):
        A[j], B[j], C[j], E[j] = map(int, input().strip().split())
D = [0] * N
visto = [0] * N
adj = [0] * N
for i in range(1,N):
        D[i]=-1
for i in range(M):
        adj[A[i]]=list()  
        adj[A[i]].append((C[i],B[i],E[i])) #costo e destinazione + exp
pq = list()
pq.append((0,0))
while len(pq)>0:
    dist, node = min(pq)
    pq.remove(min(pq))
    if node == N-1:
        break
    if visto[node]:
        continue
    visto[node]=1
    for nex in adj[node]:
        if nex[0]+D[node]<D[nex[1]] or D[nex[1]]==-1:   #[0] sta per il primo elemento della coppia
            if nex[0]+D[node]<=T or nex[2]==0: #se siamo prima dll'esplosione o la strada non esplode
                D[nex[1]]=nex[0]+D[node]   #aggiorniamo la distanza
                pq.append((D[nex[1]],nex[1]))          #mettiamo in coda



print(D[N-1])  # print the result
1 Mi Piace