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 |
|
|
| 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 |