Submission #24596915


Source Code Expand

MOD = 10**9 + 7
N,M  =map(int,input().split())
import heapq
import collections

Entity = collections.namedtuple("Entity", ["node", "w"])
Entity.__lt__ = lambda self, other: self.w <= other.w

G = [[] for _ in range(N)]
for m in range(M):
    a, b = map(int,input().split())
    a-=1; b-=1
    G[a].append(Entity(b,1))
    G[b].append(Entity(a,1))

def dijkstra(start) -> "List":
    dist = [-1 for _ in range(N)]
    dist[start] = 0
    que = []
    heapq.heappush(que, Entity(start, 0))
    done = [False for _ in range(N)]
    while que:
        i, w = heapq.heappop(que)
        if done[i]:
            continue
        done[i] = True
        for j, c in G[i]:
            if dist[j] == -1 or dist[j] > dist[i] + c:
                dist[j] = dist[i] + c
                heapq.heappush(que, Entity(j, dist[j]))
    return dist

DIST = dijkstra(0)
if DIST[-1] == -1:
    print(0)
    exit()
cont = [0 for n in range(N)]
cont[0] = 1
def dijkstra2(start) -> "List":
    dist = [-1 for _ in range(N)]
    dist[start] = 0
    que = []
    heapq.heappush(que, Entity(start, 0))
    done = [False for _ in range(N)]
    while que:
        (i, w) = heapq.heappop(que)
        for (j, c) in G[i]:
            if dist[j] == -1:
                dist[j] = dist[i] + c
                cont[j] = cont[i]
                heapq.heappush(que, Entity(j, dist[j]))
            elif dist[j] == dist[i] + c:
                cont[j] += cont[i]
                cont[j] %= MOD
    return dist
#print(DIST)
dist = dijkstra2(0)
print(cont[N-1])

Submission Info

Submission Time
Task D - Number of Shortest paths
User lightning
Language PyPy3 (7.3.0)
Score 400
Code Size 1577 Byte
Status AC
Exec Time 1209 ms
Memory 206768 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 4
AC × 30
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
All random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_31.txt, random_32.txt, random_33.txt, random_34.txt, random_35.txt, random_36.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
Case Name Status Exec Time Memory
random_01.txt AC 1209 ms 192736 KiB
random_02.txt AC 1011 ms 177136 KiB
random_03.txt AC 682 ms 171036 KiB
random_04.txt AC 530 ms 121808 KiB
random_05.txt AC 1165 ms 205860 KiB
random_06.txt AC 973 ms 162416 KiB
random_07.txt AC 367 ms 144228 KiB
random_08.txt AC 257 ms 102648 KiB
random_09.txt AC 1131 ms 190500 KiB
random_10.txt AC 972 ms 167964 KiB
random_11.txt AC 374 ms 144672 KiB
random_12.txt AC 195 ms 100092 KiB
random_13.txt AC 1168 ms 206768 KiB
random_14.txt AC 1123 ms 198128 KiB
random_15.txt AC 703 ms 159140 KiB
random_16.txt AC 534 ms 137056 KiB
random_17.txt AC 1174 ms 206644 KiB
random_18.txt AC 882 ms 156692 KiB
random_19.txt AC 1010 ms 196484 KiB
random_20.txt AC 481 ms 121760 KiB
random_31.txt AC 415 ms 143568 KiB
random_32.txt AC 871 ms 181664 KiB
random_33.txt AC 841 ms 188136 KiB
random_34.txt AC 729 ms 153100 KiB
random_35.txt AC 712 ms 153000 KiB
random_36.txt AC 789 ms 172672 KiB
sample_01.txt AC 54 ms 65396 KiB
sample_02.txt AC 55 ms 65612 KiB
sample_03.txt AC 54 ms 65672 KiB
sample_04.txt AC 59 ms 65672 KiB