아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

도시 간 이동

시간 제한3초메모리 제한128 MB

요약
K개 간선 요금이 A이고 나머지 완전그래프 간선 요금이 B일 때 1번 도시에서 N번 도시까지 최소 요금을 구합니다.
난이도

보통10점 중 7점

유형
최단 경로, 그래프, BFS
정답자
아직 제출이 없습니다

문제

몇 년 전만 해도 우크라이나 철도망은 아주 편리했다. 어느 두 도시 사이에도 직통 열차가 한 대씩 다녔고, 누구든 요금 BB 흐리브냐만 내면 지금 있는 도시에서 가고 싶은 도시로 갈 수 있었다.

최근 우크라이나에 큰 변화가 생겼다. 새 열차가 많이 도입되었다. 새 열차는 저마다 기존 열차 한 대를 대체했고, 요금은 AA 흐리브냐로 정해졌다. 그래서 지금도 두 도시 사이에는 직통 열차가 정확히 한 대씩 다닌다. 새 열차일 수도 있고 기존 열차일 수도 있다. 열차는 모두 양방향으로 운행하며, 요금은 방향과 무관하다.

우크라이나에는 큰 도시가 NN개 있고, 당신은 1번 도시에 산다. NN번 도시로 가려고 한다. 환승 횟수는 상관없으니, 요금의 합이 가장 적은 방법을 찾아라.

입력

첫째 줄에 도시의 수 NN, 새 열차의 수 KK, 새 열차의 요금 AA, 기존 열차의 요금 BB가 정수로 주어진다. (2≤N≤5000002 \le N \le 500000, 0≤K≤5000000 \le K \le 500000, 1≤A,B≤5000001 \le A, B \le 500000)

다음 KK개 줄에는 두 정수 uiu_i와 viv_i가 주어진다. (1≤ui,vi≤N1 \le u_i, v_i \le N) uiu_i번 도시와 viv_i번 도시 사이에 새 열차가 다닌다는 뜻이다. uiu_i와 viv_i는 서로 다르고, 같은 도시 쌍은 최대 한 번 등장한다.

출력

1번 도시에서 NN번 도시까지 가는 가장 싼 방법의 요금 PP를 출력한다.

예제2

  1. 예제 1

    입력
    5 4 1 4
    1 2
    2 3
    2 4
    3 5
    
    예상 출력
    3
    
  2. 예제 2

    입력
    6 5 1 100
    1 2
    2 3
    3 4
    4 5
    5 6
    
    예상 출력
    5