#include #include #include #include #include #include using namespace std; struct node{ int indx; double dis; node() { } node(int indx1, double dis1) { indx=indx1; dis=dis1; } bool operator < (const node &tmp) const{ return dis>tmp.dis; } }; int main() { int n; cin>>n; vector < pair > v; int x,y; for(int i=0;i>x>>y; v.push_back(make_pair(x,y)); } vector < pair > g[n]; vector visited(n,false); vector dis(n,2e9); for(int i=0;i pq; pq.push(node(0,0)); while(!pq.empty()) { node c=pq.top(); pq.pop(); if(visited[c.indx]) { continue; } visited[c.indx]=true; for(int i=0;i