Pagini recente » Cod sursa (job #2117491) | Cod sursa (job #344728) | Cod sursa (job #1786149) | Cod sursa (job #2660134) | Cod sursa (job #254604)
Cod sursa(job #254604)
#include <cstdio>
const int dx[4] = {0, 1, 0, -1};
const int dy[4] = {1, 0, -1, 0};
const int MAX_N = 55;
int n, m, k, z;
int a[MAX_N][MAX_N], b[MAX_N][MAX_N];
int sx[MAX_N * MAX_N], sy[MAX_N * MAX_N];
int main()
{
int i, j, xs, ys, xf, yf;
freopen("kdrum.in", "r", stdin);
freopen("kdrum.out", "w", stdout);
scanf("%d %d %d", &n, &m, &k);
scanf("%d %d %d %d", &xs, &ys, &xf, &yf);
for (i = 1; i <= n; ++i)
for (j = 1; j <= m; ++j) scanf("%d", &a[i][j]);
sx[z = 1] = xs;
sy[1] = ys;
b[xs][ys] = 1;
for (i = 1; i <= z; ++i)
{
for (int d = 0; d < 4; ++d)
{
int newx = sx[i] + dx[d];
int newy = sy[i] + dy[d];
if (newx > 0 && newx <= n && newy > 0 && newy <= m &&
a[newx][newy] && (b[newx][newy] > b[sx[i]][sy[i]] + 1 || !b[newx][newy]))
{
sx[++z] = newx;
sy[z] = newy;
b[newx][newy] = b[sx[i]][sy[i]] + 1;
}
}
}
printf("%d\n", b[xf][yf]);
}