Pagini recente » Cod sursa (job #2343267) | Cod sursa (job #592132) | Cod sursa (job #1104537) | Cod sursa (job #2404245) | Cod sursa (job #2292286)
#include <fstream>
#include <queue>
std::ifstream("barbari.in);
std::ofstream("barbari.out);
char mat[1001][1001];
int viz[100][1001];
struct poz{
int x,y,cost;
};
std::queue<poz>q;
int dx[]={-1,0,1,0};
int dy[]={0,1,0,-1};
int bs(){
int p
}
int main(){
int n,m,x1,x2,y1,y2;
in>>n>>m>>std::ws;
for(int i=1;i<=n;i++,in>>std::ws)
for(int j=1;j<=m;j++){
in>>mat[i][j];
if(mat[i][j]=='D')
q.push({i,j,0});
if(mat[i][j]=='I')
x1=i,y1=j;
if(mat[i][j]=='O')
x2=i,y2=j;
}
while(!q.empty()){
poz aux=q.top();
q.pop();
for(int i=0;i<4;i++){
poz a2={aux.x+dx[i],aux.y+du[i],aux.cost+1};
if(viz[a2.x][a2.y]<cost && a2.x>=1 && a2.y>=1 && a2.x<=n && a2.y<=m && mat[a2.x][a2.y]!='*' && mat[a2.x][a2.y]!='D')
viz[a2.x][a2.y]=a2.cost,q.push(a2);
}
}
out<<bs();
return 0;
}