Submission #6416533
Source Code Expand
#!/usr/bin/env python3 #ABC21 C #ダイクストラ法 from collections import deque from heapq import heappush, heappop mod = 10**9 + 7 def dijkstra(): #startノードからの最短距離のリスト #初期ノードは0,それ以外は無限大で初期化 distance = [float('inf') for _ in range(n)] distance[a] = 0 #startノードをqueueに入れる que = [[0,a]] #startから各ノードへの最短経路の数のリスト #startノードへの最短経路は1つ ans = [0]*n ans[a] = 1 #未探索のノードがあるなら while que: #優先度(距離)が最小であるqueueを取り出す #dx:= startからの距離,x:= ノード dx,x = heappop(que) #y:= 取り出したノード(x)と辺でつながっているノード for y in edge[x]: #まだそのノード(y)を見ていないとき #startからyまでの距離をdx + 1にする if distance[y] > dx + 1: distance[y] = dx + 1 #yまでの最短経路数はxまでの最短経路数と同じ ans[y] = ans[x] #まだ見ていなかったのでqueueに入れる heappush(que,[distance[y],y]) #一度見ており、1回目とは違うノード(x)からそのノード(y)を見たとき #(1回目とノードは違うが、最短距離は同じノード) elif distance[y] == dx + 1: #yまでの最短経路にxからの経路を加える ans[y] += ans[x] return ans n = int(input()) a,b = map(int,input().split()) a -= 1 b -= 1 m = int(input()) xy = [list(map(int,input().split())) for _ in range(m)] edge = [[] for _ in range(n)] for x,y in xy: edge[x-1].append(y-1) edge[y-1].append(x-1) ans = dijkstra() print(ans[b] % mod)
Submission Info
Submission Time | |
---|---|
Task | C - 正直者の高橋くん |
User | nrkt |
Language | PyPy3 (2.4.0) |
Score | 100 |
Code Size | 1930 Byte |
Status | AC |
Exec Time | 170 ms |
Memory | 38384 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 100 / 100 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | subtask0_sample_01.txt, subtask0_sample_02.txt |
All | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask0_sample_01.txt | AC | 164 ms | 38384 KB |
subtask0_sample_02.txt | AC | 162 ms | 38256 KB |
subtask1_01.txt | AC | 165 ms | 38256 KB |
subtask1_02.txt | AC | 166 ms | 38256 KB |
subtask1_03.txt | AC | 162 ms | 38256 KB |
subtask1_04.txt | AC | 166 ms | 38256 KB |
subtask1_05.txt | AC | 166 ms | 38256 KB |
subtask1_06.txt | AC | 162 ms | 38256 KB |
subtask1_07.txt | AC | 164 ms | 38256 KB |
subtask1_08.txt | AC | 164 ms | 38256 KB |
subtask1_09.txt | AC | 165 ms | 38256 KB |
subtask1_10.txt | AC | 166 ms | 38256 KB |
subtask1_11.txt | AC | 166 ms | 38256 KB |
subtask1_12.txt | AC | 165 ms | 38256 KB |
subtask1_13.txt | AC | 166 ms | 38256 KB |
subtask1_14.txt | AC | 165 ms | 38256 KB |
subtask1_15.txt | AC | 166 ms | 38256 KB |
subtask1_16.txt | AC | 167 ms | 38256 KB |
subtask1_17.txt | AC | 166 ms | 38256 KB |
subtask1_18.txt | AC | 165 ms | 38256 KB |
subtask1_19.txt | AC | 170 ms | 38256 KB |
subtask1_20.txt | AC | 169 ms | 38256 KB |
subtask1_21.txt | AC | 169 ms | 38256 KB |
subtask1_22.txt | AC | 166 ms | 38256 KB |
subtask1_23.txt | AC | 165 ms | 38256 KB |
subtask1_24.txt | AC | 167 ms | 38256 KB |
subtask1_25.txt | AC | 166 ms | 38256 KB |
subtask1_26.txt | AC | 166 ms | 38384 KB |
subtask1_27.txt | AC | 165 ms | 38256 KB |
subtask1_28.txt | AC | 169 ms | 38256 KB |
subtask1_29.txt | AC | 164 ms | 38256 KB |
subtask1_30.txt | AC | 162 ms | 38256 KB |