#include #include #include using namespace std; int n,m,q; int e; struct A { int s; int v; int num; int len; double ans; }E[333]; struct B { int dis; int flag; }city[333]; struct node { int num; int dis; friend bool operator<(node n1,node n2) { return n2.disans>d->ans) return 1; else if(c->ansans) return -1; if(c->len!=d->len) return d->len-c->len; return d->num-c->num; } void Dij() { priority_queueq; node cur,next; int temp; cur.num=e; cur.dis=0; q.push(cur); while(!q.empty()) { cur=q.top(); q.pop(); if(!city[cur.num].flag) continue; temp=head[cur.num]; while(temp!=-1) { if(city[cur.num].dis+eage[temp].len