提出 #6339072
ソースコード 拡げる
import sys
input = sys.stdin.readline
from collections import defaultdict
"""
(駅、会社)を頂点にグラフを持つ。頂点数O(M)。
そのまま辺を貼ると辺が多くなりすぎる。
(駅、会社) -> (駅、無属性) -> (駅、会社)
"""
L = 32
mask = (1 << L) - 1
N,M = map(int,input().split())
graph = defaultdict(list)
for _ in range(M):
p,q,c = map(int,input().split())
p <<= L
q <<= L
graph[p].append(p+c)
graph[p+c].append(p)
graph[q].append(q+c)
graph[q+c].append(q)
graph[p+c].append(q+c)
graph[q+c].append(p+c)
INF = 10 ** 9
dist = defaultdict(lambda: INF)
start = 1 << L
goal = N << L
q = [start] # 0 が会社に属していない状態
dist[start] = 0
d = 0
q0 = []
q1 = []
while q:
for x in q:
if x & mask == 0:
for y in graph[x]:
if dist[y] <= d + 1:
continue
dist[y] = d + 1
q1.append(y)
else:
for y in graph[x]:
if dist[y] <= d:
continue
dist[y] = d
q0.append(y)
if q0:
q = q0
q0 = []
continue
q = q1
q1 = []
d += 1
answer = dist[goal]
if answer == INF:
answer = -1
print(answer)
提出情報
| 提出日時 | |
|---|---|
| 問題 | E - すぬけ君の地下鉄旅行 |
| ユーザ | maspy |
| 言語 | Python (3.4.3) |
| 得点 | 600 |
| コード長 | 1342 Byte |
| 結果 | AC |
| 実行時間 | 2693 ms |
| メモリ | 196696 KiB |
ジャッジ結果
| セット名 | Sample | All | ||
|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 600 / 600 | ||
| 結果 | AC |
|
| セット名 | テストケース |
|---|---|
| Sample | |
| All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, sample_01.txt, sample_02.txt, sample_03.txt, w1.txt, w10.txt, w11.txt, w12.txt, w13.txt, w14.txt, w15.txt, w16.txt, w17.txt, w18.txt, w2.txt, w3.txt, w4.txt, w5.txt, w6.txt, w7.txt, w8.txt, w9.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 01.txt | AC | 22 ms | 3444 KiB |
| 02.txt | AC | 1790 ms | 96380 KiB |
| 03.txt | AC | 2693 ms | 196652 KiB |
| 04.txt | AC | 1785 ms | 147104 KiB |
| 05.txt | AC | 2427 ms | 178828 KiB |
| 06.txt | AC | 1248 ms | 106160 KiB |
| 07.txt | AC | 1242 ms | 105316 KiB |
| 08.txt | AC | 2553 ms | 196696 KiB |
| 09.txt | AC | 1335 ms | 110856 KiB |
| 10.txt | AC | 1312 ms | 110800 KiB |
| 11.txt | AC | 1748 ms | 126328 KiB |
| 12.txt | AC | 993 ms | 62140 KiB |
| 13.txt | AC | 1322 ms | 91252 KiB |
| 14.txt | AC | 1679 ms | 124816 KiB |
| 15.txt | AC | 1501 ms | 98276 KiB |
| 16.txt | AC | 1621 ms | 122060 KiB |
| 17.txt | AC | 1751 ms | 127436 KiB |
| 18.txt | AC | 1108 ms | 70156 KiB |
| 19.txt | AC | 1641 ms | 122800 KiB |
| 20.txt | AC | 1764 ms | 129772 KiB |
| 21.txt | AC | 2481 ms | 195288 KiB |
| 22.txt | AC | 1952 ms | 132544 KiB |
| 23.txt | AC | 2091 ms | 139776 KiB |
| 24.txt | AC | 1718 ms | 128716 KiB |
| 25.txt | AC | 972 ms | 61808 KiB |
| 26.txt | AC | 1289 ms | 90892 KiB |
| 27.txt | AC | 1791 ms | 132080 KiB |
| 28.txt | AC | 1655 ms | 129576 KiB |
| 29.txt | AC | 1715 ms | 130864 KiB |
| 30.txt | AC | 1654 ms | 127120 KiB |
| 31.txt | AC | 1322 ms | 91144 KiB |
| 32.txt | AC | 1565 ms | 121968 KiB |
| 33.txt | AC | 1705 ms | 131640 KiB |
| 34.txt | AC | 1496 ms | 98704 KiB |
| 35.txt | AC | 932 ms | 61708 KiB |
| 36.txt | AC | 1151 ms | 71172 KiB |
| 37.txt | AC | 1682 ms | 118376 KiB |
| 38.txt | AC | 1503 ms | 98632 KiB |
| sample_01.txt | AC | 21 ms | 3316 KiB |
| sample_02.txt | AC | 21 ms | 3316 KiB |
| sample_03.txt | AC | 20 ms | 3316 KiB |
| w1.txt | AC | 1760 ms | 124704 KiB |
| w10.txt | AC | 1725 ms | 154784 KiB |
| w11.txt | AC | 1002 ms | 62864 KiB |
| w12.txt | AC | 1210 ms | 68676 KiB |
| w13.txt | AC | 1598 ms | 120708 KiB |
| w14.txt | AC | 2118 ms | 165168 KiB |
| w15.txt | AC | 977 ms | 62744 KiB |
| w16.txt | AC | 980 ms | 63108 KiB |
| w17.txt | AC | 1016 ms | 64672 KiB |
| w18.txt | AC | 1375 ms | 93880 KiB |
| w2.txt | AC | 1689 ms | 123740 KiB |
| w3.txt | AC | 1956 ms | 131800 KiB |
| w4.txt | AC | 1596 ms | 122236 KiB |
| w5.txt | AC | 2505 ms | 196252 KiB |
| w6.txt | AC | 2317 ms | 181072 KiB |
| w7.txt | AC | 2153 ms | 187380 KiB |
| w8.txt | AC | 2060 ms | 187852 KiB |
| w9.txt | AC | 2164 ms | 193188 KiB |