#include #include #include #include #include using namespace std; #define MAXL 1000 enum pole { nemocnice, prazdne, start, stavba }; vector> bludiste(MAXL, vector(MAXL)); vector> K(MAXL, vector(MAXL)); vector>> odkud(MAXL, vector>(MAXL)); int i,j,R,S; int D; pair vysl; queue> bfs; queue> pomocna; void hledejK(int hodnota, int x, int y) { if(x<=0 || x>S || y<=0 || y>R) return; if(K[x][y]==0 && bludiste[x][y]!=stavba) { K[x][y]=hodnota; bfs.push(make_pair(x, y)); } } void projdi(int predX, int predY, int x, int y) { if(x<=0 || x>S || y<=0 || y>R) return; if(odkud[x][y].first!=0) return; // již jsme jej viděli odkud[x][y].first=predX; odkud[x][y].second=predY; if(K[x][y]