#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