약 2군데정도 실수를 하셨네요.
st=((j-1)/4+1)*4+1;
저 st값은 j가 아니라 i로 계산해야하지 않을까요?
그리고 다익스트라에서
if(min+map[mini][i]<dist[i] && visited[i]==false)
dist[i]=map[0][mini]+map[mini][i];
min값이랑 map[0][mini] 값이 동일하다는 보장이 없습니다.
제대로 min을 넣어주세요....
여담으로 map[i][i]는 Dougle.MAX보다 0으로 초기화 하는 것이 일반적입니다.