백준 1939(파이썬) - 중량제한
resilient
·2021. 4. 5. 18:05
728x90
반응형
1939번: 중량제한
첫째 줄에 N, M(1≤M≤100,000)이 주어진다. 다음 M개의 줄에는 다리에 대한 정보를 나타내는 세 정수 A, B(1≤A, B≤N), C(1≤C≤1,000,000,000)가 주어진다. 이는 A번 섬과 B번 섬 사이에 중량제한이 C인 다리
www.acmicpc.net
import sys
input = sys.stdin.readline
from heapq import heappop,heappush
from collections import deque
n,m = map(int,input().split())
graph = [[] for _ in range(n+1)]
for i in range(m):
a,b,cost = map(int,input().split())
graph[a].append([b,cost])
graph[b].append([a,cost])
start,end = map(int,input().split())
MIN,MAX = 1,1000000000
def bfs(weight):
queue = deque()
queue.append(start)
visited[start] = True
while queue:
a = queue.popleft()
for x,y in graph[a]:
if not visited[x] and y >=weight:
visited[x] = True
queue.append(x)
if visited[end]==True:
return True
else:
return False
ans = 0
while MIN<=MAX:
visited = [False] * (n+1)
mid = (MIN+MAX)//2
if bfs(mid):
ans = mid
MIN = mid + 1
else:
MAX = mid -1
print(ans)
반응형
'자료구조 & 알고리즘 > 백준(Baekjoon)' 카테고리의 다른 글
백준1697(파이썬) - 숨바꼭질 (0) | 2021.04.27 |
---|---|
백준 1561(파이썬) - 놀이공원 (0) | 2021.04.10 |
백준 2146(파이썬) - 다리만들기 (0) | 2021.04.05 |
백준 1916(파이썬) - 최소비용구하기 (0) | 2021.04.01 |
백준 2512(파이썬) - 예산 (0) | 2021.03.25 |