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