#include #include #include #include #include using namespace std; #define ll long long typedef struct edge{ ll to; ll cost; }Edge; typedef pair Pii; long long INF=1000000000000000000; int V; vector G[100000]; long long d[100000]; void dijkstra(int s){ priority_queue,greater> que; fill(d,d+V,INF); d[s]=0; que.push(Pii(0,s)); while(!que.empty()){ Pii p=que.top();que.pop(); int v=p.second; if(d[v]d[v]+e.cost){ d[e.to]=d[v]+e.cost; que.push(Pii(d[e.to],e.to)); } } } } // ostream& operator<<(ostream& os,vector& a){ // for(Edge i:a){ // os<<"to:"<>H>>W>>U>>D>>R>>L>>K>>P>>xs>>ys>>xt>>yt; //cerr<<"P:"<C(H); for(int i=0;i>C.at(i); C.at(i).append("#"); } for(int i=0;i