Cod sursa(job #1093770)

Utilizator gerd13David Gergely gerd13 Data 28 ianuarie 2014 16:24:54
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.5 kb
#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;
}