만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

시청

시간 제한2초메모리 제한1024 MB

요약
각 도로의 에너지가 양 끝 고도 차의 제곱인 도시에서, 교차로 하나의 고도를 자유롭게 바꿀 때 S에서 T까지의 최소 에너지를 구합니다.
난이도

어려움10점 중 8점

유형
최단 경로, 그래프, 동적 계획법, 수학
정답자
아직 제출이 없습니다

문제

당신은 ICPC 시의 시장입니다. 이 도시에는 1번부터 NN번까지 번호가 붙은 NN개의 교차로가 있습니다. 교차로 ii의 고도는 HiH_i입니다. 당신의 집은 교차로 SS에 있고, 시청은 교차로 TT에 있습니다.

양방향 도로가 MM개 있으며, 1번부터 MM번까지 번호가 붙어 있습니다. 도로 ii는 교차로 UiU_i와 ViV_i를 직접 잇습니다. 두 교차로를 직접 잇는 도로는 최대 한 개입니다. 어떤 교차로에서든 도로를 하나 이상 지나서 다른 모든 교차로에 갈 수 있습니다.

매일 아침 당신은 자전거로 집에서 시청까지 갑니다. 교차로 uu와 vv를 잇는 도로를 지날 때 드는 에너지는 (Hu−Hv)2(H_u - H_v)^2입니다. 경로의 총 에너지는 그 경로에 포함된 도로마다 드는 에너지의 합입니다.

시장인 당신은 교차로 하나의 고도를 최대 한 번, 음이 아닌 임의의 실수로 바꿀 수 있습니다. 이를 이용해 집에서 시청까지 가는 데 드는 총 에너지를 최소화하려고 합니다.

입력

첫 줄에는 정수 NN, MM, SS, TT가 주어집니다 (2≤N≤100,0002 \le N \le 100{,}000; N−1≤M≤min⁡(N(N−1)2,200,000)N-1 \le M \le \min(\frac{N(N-1)}{2}, 200{,}000); 1≤S,T≤N1 \le S, T \le N; S≠TS \ne T). 다음 줄에는 NN개의 정수 HiH_i (0≤Hi≤100,0000 \le H_i \le 100{,}000)가 주어지며, 각 교차로의 고도를 나타냅니다. 이어서 MM개의 줄에 걸쳐 도로 ii가 잇는 두 교차로 UiU_i와 ViV_i (1≤Ui<Vi≤N1 \le U_i < V_i \le N)가 주어집니다. 두 교차로를 잇는 도로는 최대 한 개이며, 도로는 모든 교차로를 연결합니다.

출력

최소 총 에너지를 한 줄에 실수 하나로 출력합니다. 절대 오차가 10−610^{-6} 이하이면 정답으로 인정합니다.

예제3

  1. 예제 1

    입력
    5 6 1 3
    5 100 8 2 10
    1 2
    2 3
    2 5
    1 4
    4 5
    3 5
    
    예상 출력
    4.500000
    
  2. 예제 2

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

    입력
    5 4 1 4
    8 8 8 8 100
    1 2
    2 3
    3 4
    4 5
    
    예상 출력
    0.000000