#define _USE_MATH_DEFINES #include using namespace std; //template #define rep(i,a,b) for(int i=(int)(a);i<(int)(b);i++) #define ALL(v) (v).begin(),(v).end() typedef long long int ll; const int inf = 0x3fffffff; const ll INF = 0x1fffffffffffffff; const double eps=1e-12; templateinline bool chmax(T& a,T b){if(ainline bool chmin(T& a,T b){if(a>b){a=b;return 1;}return 0;} //end typedef pair P; typedef pair P2; vector g[201010]; int main(){ int n,m; cin>>n>>m; int s,t; cin>>s>>t; s--; t--; vector

pos(n); rep(i,0,n)cin>>pos[i].first>>pos[i].second; rep(i,0,m){ int x,y; cin>>x>>y; x--; y--; double d=hypot(pos[x].first-pos[y].first,pos[x].second-pos[y].second); g[x].push_back({d,y}); g[y].push_back({d,x}); } vector dist(n,inf); dist[s]=0; priority_queue,greater> pq; pq.push({0,s}); while(!pq.empty()){ auto [d,v]=pq.top(); pq.pop(); if(dist[v]