#include <bits/stdc++.h>
#include <vector>
#include <queue>
using namespace std;
typedef pair<int,int> iPair;
#define INF 0x3f3f3f3f
void addEdge(vector<vector<pair<int,int>>>& adj, int i, int j, int w){
adj[i].push_back(make_pair(j,w));
adj[j].push_back(make_pair(i,w));
}
void shortestPath(vector<vector<pair<int,int>>>& adj, int src){
int n=adj.size();
priority_queue<iPair, vector<iPair>, greater<iPair>> pq;
vector<int> dist(n,INF);
pq.push(make_pair(0,src));
dist[src]=0;
while(!pq.empty()){
int v=pq.top().second;
pq.pop();
for(auto& i:adj[v]){
int v1=i.first;
int w=i.second;
if(dist[v1]>dist[v]+w){
dist[v1]=dist[v]+w;
pq.push(make_pair(dist[v1],v1));
}
}
}
printf("dsitancejfkjd\n");
for(int i=0;i<n;i++){
printf("%d %d\n", i, dist[i]);
}
}
int main(){
vector<vector<iPair>> adj(9);
addEdge(adj, 0, 1, 4);
addEdge(adj, 0, 7, 8);
addEdge(adj, 1, 2, 8);
addEdge(adj, 1, 7, 11);
addEdge(adj, 2, 3, 7);
addEdge(adj, 2, 8, 2);
addEdge(adj, 2, 5, 4);
addEdge(adj, 3, 4, 9);
addEdge(adj, 3, 5, 14);
addEdge(adj, 4, 5, 10);
addEdge(adj, 5, 6, 2);
addEdge(adj, 6, 7, 1);
addEdge(adj, 6, 8, 6);
addEdge(adj, 7, 8, 7);
shortestPath(adj, 0);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxxdWV1ZT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBwYWlyPGludCxpbnQ+IGlQYWlyOwojZGVmaW5lIElORiAweDNmM2YzZjNmCgoKdm9pZCBhZGRFZGdlKHZlY3Rvcjx2ZWN0b3I8cGFpcjxpbnQsaW50Pj4+JiBhZGosIGludCBpLCBpbnQgaiwgaW50IHcpewogICAgYWRqW2ldLnB1c2hfYmFjayhtYWtlX3BhaXIoaix3KSk7CiAgICBhZGpbal0ucHVzaF9iYWNrKG1ha2VfcGFpcihpLHcpKTsKfQoKdm9pZCBzaG9ydGVzdFBhdGgodmVjdG9yPHZlY3RvcjxwYWlyPGludCxpbnQ+Pj4mIGFkaiwgaW50IHNyYyl7CiAgICBpbnQgbj1hZGouc2l6ZSgpOwogICAgcHJpb3JpdHlfcXVldWU8aVBhaXIsIHZlY3RvcjxpUGFpcj4sIGdyZWF0ZXI8aVBhaXI+PiBwcTsKICAgIHZlY3RvcjxpbnQ+IGRpc3QobixJTkYpOwogICAgcHEucHVzaChtYWtlX3BhaXIoMCxzcmMpKTsKICAgIGRpc3Rbc3JjXT0wOwogICAgd2hpbGUoIXBxLmVtcHR5KCkpewogICAgICAgIGludCB2PXBxLnRvcCgpLnNlY29uZDsKICAgICAgICBwcS5wb3AoKTsKICAgICAgICBmb3IoYXV0byYgaTphZGpbdl0pewogICAgICAgICAgICBpbnQgdjE9aS5maXJzdDsKICAgICAgICAgICAgaW50IHc9aS5zZWNvbmQ7CiAgICAgICAgICAgIGlmKGRpc3RbdjFdPmRpc3Rbdl0rdyl7CiAgICAgICAgICAgICAgICBkaXN0W3YxXT1kaXN0W3ZdK3c7CiAgICAgICAgICAgICAgICBwcS5wdXNoKG1ha2VfcGFpcihkaXN0W3YxXSx2MSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcHJpbnRmKCJkc2l0YW5jZWpma2pkXG4iKTsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgIHByaW50ZigiJWQgJWRcbiIsIGksIGRpc3RbaV0pOwogICAgfQp9CgppbnQgbWFpbigpewogICAgdmVjdG9yPHZlY3RvcjxpUGFpcj4+IGFkaig5KTsKICAgIGFkZEVkZ2UoYWRqLCAwLCAxLCA0KTsKICAgIGFkZEVkZ2UoYWRqLCAwLCA3LCA4KTsKICAgIGFkZEVkZ2UoYWRqLCAxLCAyLCA4KTsKICAgIGFkZEVkZ2UoYWRqLCAxLCA3LCAxMSk7CiAgICBhZGRFZGdlKGFkaiwgMiwgMywgNyk7CiAgICBhZGRFZGdlKGFkaiwgMiwgOCwgMik7CiAgICBhZGRFZGdlKGFkaiwgMiwgNSwgNCk7CiAgICBhZGRFZGdlKGFkaiwgMywgNCwgOSk7CiAgICBhZGRFZGdlKGFkaiwgMywgNSwgMTQpOwogICAgYWRkRWRnZShhZGosIDQsIDUsIDEwKTsKICAgIGFkZEVkZ2UoYWRqLCA1LCA2LCAyKTsKICAgIGFkZEVkZ2UoYWRqLCA2LCA3LCAxKTsKICAgIGFkZEVkZ2UoYWRqLCA2LCA4LCA2KTsKICAgIGFkZEVkZ2UoYWRqLCA3LCA4LCA3KTsKICAgIHNob3J0ZXN0UGF0aChhZGosIDApOwogICAgcmV0dXJuIDA7Cn0K