Cod sursa(job #2135538)

Utilizator Luca19Hritcu Luca Luca19 Data 18 februarie 2018 22:17:09
Problema Castel Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.33 kb
#include <fstream>
using namespace std;
ifstream f("castel.in");
ofstream g("castel.out");
int main()
{
    int m, n, k, i, cheie[30000], cont;
    bool camere[30000], modif;
    f>>m>>n>>k;
    for (i=1; i<=(n*m); i++)
    {
        f>>cheie[i];
        camere[i]=0;
    }
    camere[k]=1;
    modif=1;
    cont=1;
    while (modif)
    {
        modif=0;
        for (i=1; i<=(n*m); i++)
            if (camere[i])
            {
                if (((i-n)>0)&&(camere[cheie[i-n]])&&(camere[i-n]==0))
                {
                    camere[i-n]=1;
                    modif=1;
                    cont++;
                }
                if (((i+n)<=(n*m))&&(camere[cheie[i+n]])&&(camere[i+n]==0))
                {
                    camere[i+n]=1;
                    modif=1;
                    cont++;
                }
                if ((i>1)&&(((i-1)%n)!=0)&&(camere[cheie[i-1]])&&(camere[i-1]==0))
                {
                    camere[i-1]=1;
                    modif=1;
                    cont++;
                }
                if (((i+1)<=(n*m))&&(((i+1)%n)!=1)&&(camere[cheie[i+1]])&&(camere[i+1]==0))
                {
                    camere[i+1]=1;
                    modif=1;
                    cont++;
                }
        }
    }
    g<<cont;
    return 0;
}