Pagini recente » Cod sursa (job #1809324) | Cod sursa (job #1417185) | Cod sursa (job #1512443) | Cod sursa (job #2906126) | Cod sursa (job #2552958)
#include <fstream>
using namespace std;
int is, js, it , jt, n, m, a[dim][dim], dist[dim][dim], d[dim][dim];
int di={-1, 0, 0, 1};
int dj={0, 1, -1, 0};
struct coada {
int lin;
int col;
};
int verif (int i, int j)
{
if (i<=i && i<=n && 1<=j && j<=m && f[i][j]==0)
return 1;
return 0;
}
coada c[dim*dim];
int lee (int is, int js)
{
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++)
f[i][j]=0;
c[1].lin=is;
c[1].col=js;
while (p<=u)
{
i=c[p].lin;
j=c[p].col;
for (int d=0; d<=3; d++)
{
int iv=i+di[d];
int jv=j+dj[d];
if (verif (iv, jv))
{
f[iv][jv]=1;
c[++u].lin=iv;
c[u].col=jv;
dist[iv][jv]=dist[i][j]+1;
}
}
p++;
}
}
int main ()
{
ifstream fin ("barbar.in");
ofstream fout ("barbar.out");
fin>>n>>m;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
{
fin>>C;
if (C=='I')
{
is=i; js=j;
}
if (C=='D')
a[i][j]=1;
if (C=='*')
a[i][j]=-1;
if (C=='O')
{
it=i; jt=j;
}
}
for (i=1; i<=n; i++)
{
if (a[i][j]==1)
lee(i, j);
}
}