Pagini recente » Cod sursa (job #523437) | Cod sursa (job #1509462) | Cod sursa (job #272163) | Cod sursa (job #2923555) | Cod sursa (job #1093770)
#include <fstream>
#include <queue>
#include <string>
using namespace std ;
const int NMAX = 105 ;
const int dx[] = {-1, -1, -1, 0, 0, 1, 1, 1 } ;
const int dy[] = {-1, 0 , 1, -1, 1, -1, 0, 1 } ;
string s ;
ifstream cin("rj.in") ;
ofstream cout("rj.out") ;
int N, M, C[NMAX][NMAX], D[NMAX][NMAX], B[NMAX][NMAX], tmin;
queue <pair <int, int> > Q ;
int sol = NMAX * NMAX ;
void citire()
{
cin >> N >> M ;
getline (cin, s) ;
for(int i = 1; i <= N ; ++ i)
{ getline(cin, s) ;
for(int j =01 ; j < M ; ++ j)
if(s[j] == ' ')
D[i][j+1] = 0 ;
else if(s[j] == 'X')
D[i][j+1] = -1 ;
else {
D[i][j+1] = 0;
Q.push(make_pair(i, j)) ;
}
}
}
void lee()
{
while(!Q.empty())
{
int x = Q.front().first ;
int y = Q.front().second ;
Q.pop() ;
for(int i = 0 ; i < 8 ; ++ i)
{
int xnou = x + dx[i] ;
int ynou = y + dy[i] ;
if(xnou >= 1 && xnou <= N && ynou >= 1 && ynou <= N)
if(D[xnou][ynou] == 0)
{
D[xnou][ynou] = D[x][y] + 1 ;
Q.push(make_pair(xnou, ynou)) ;
}
}
}
}
void afisare()
{
for(int i = 1 ; i <= N; ++i)
for(int j = 1 ;j <= N ; ++ j)
if()
}
int main()
{
citire() ;
lee() ;
afisare() ;
cin.close() ;
cout.close() ;
return 0;
}