#include #define INF 2e9 using namespace std; struct node { long long vr,tg; node(){} node(long long a, long long b) { vr=a; tg=b; } }; priority_queue pq; bool operator<(node a,node b) { return a.tg > b.tg; } long long used[300500]; long long dist[300500]; long long n; vector g[300500]; void dijkstra(long long vr) { for(long long i=1; i<=2*n; i++) dist[i]=INF; pq.push( node ( vr, 0 ) ); dist[vr]=0; while(!pq.empty()) { vr=pq.top().vr; pq.pop(); //cout<>n>>m; for(long long i=0;i>a>>b>>c>>d; g[a].push_back({b,c}); g[a].push_back({n+b,d}); g[n+a].push_back({n+b,d}); g[b].push_back({a,c}); g[n+b].push_back({a,d}); g[n+b].push_back({n+a,d}); } dijkstra(1); //cout<>t; while(t--) { solve(); } return 0; }