q.push(node(0,0)); //始点として頂点0を取る、コストは0
while(!q.empty()){
node tmp = q.top(); q.pop();
if(used[tmp.num] == true) continue; //popしたvが到達済みなら捨てる
used[tmp.num] = true; //到達済みにする
ret += tmp.cost; //コストを加える
for(int i=0;i<n;i++){
if(cost[tmp.num][i] != INF){ //加えた頂点から到達可能な頂点と、そのコストをPQにpush
q.push(node(cost[tmp.num][i], i));
}
}
}