#include #define eps 1e-6 #define N 205 #define x1 drasgjdlslsh #define x2 drasgjdlslhh #define Ms(a,b) memset(a,b,sizeof a) #define db(x) cout<<#x<<"="<); while(!q.empty()) { now=q.top(),q.pop(); if(fabs(dis[now.x][now.y]-now.dis)>eps)continue; // puts("------"); // db3(now.x,now.y,now.dis) // puts("------"); for(int i=0; i<4; i++) { nxt=now; nxt.x+=dx[i],nxt.y+=dy[i]; if(!check(nxt))continue; // if(now.x==2&&now.y==2&&nxt.x==3&&nxt.y==2){ // db2(x[nxt.x],x[now.x]) // } nxt.dis+=1.0*(abs(x[nxt.x]-x[now.x])+abs(y[nxt.y]-y[now.y]))/(mp[dd[i]][now.x+rx[i]][now.y+ry[i]]+1); if(nxt.dis); } } } printf("%.5lf\n",dis[ex][ey]); } return 0; }