Cod sursa(job #2552958)

Utilizator teisanumihai84Mihai Teisanu teisanumihai84 Data 21 februarie 2020 13:14:03
Problema Barbar Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.43 kb
#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);
    }

}