結果
問題 |
No.1244 Black Segment
|
ユーザー |
|
提出日時 | 2021-05-06 07:03:32 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 231 ms / 2,000 ms |
コード長 | 849 bytes |
コンパイル時間 | 241 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 89,184 KB |
最終ジャッジ日時 | 2024-09-14 00:11:25 |
合計ジャッジ時間 | 8,553 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge6 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 36 |
ソースコード
from collections import deque def bfs(starts): dist=[INF]*(N+1) next_set=deque() for start in starts: next_set.append((start,0)) dist[start]=0 while next_set: p,t=next_set.popleft() for q in edges[p]: if dist[q]!=INF: continue dist[q]=t+1 next_set.append((q,t+1)) return dist ############################################## N,M,A,B=map(int, input().split()) A-=1 B-=1 INF=10**18 res=INF starts=[] edges=[[] for _ in range(N+1)] for _ in range(M): l,r=map(int, input().split()) l-=1 r-=1 if l<=A: starts.append(l) edges[l].append(r+1) elif A<=l<=B: edges[l].append(r+1) edges[r+1].append(l) dist=bfs(starts) for i in range(B+1,N+1): res=min(dist[i],res) print(res if res!=INF else -1)