Cod sursa(job #2179354)

Utilizator DavidDragulinDragulin David DavidDragulin Data 20 martie 2018 10:11:54
Problema Castel Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <bits/stdc++.h>
#define pb push
using namespace std;
ifstream fin("castel.in");
ofstream fout("castel.out");
int o,ok,n,m,i,j,k,p,v[150*150+9],cur,x,u[150*150+9],nr,cheie[150*150+9],q[150*150+9];
int main()
{
    fin>>m>>n>>k;
    int vs[]= {-n,1,n,-1};
    for(i=1; i<=n; i++)
        for(j=1; j<=m; j++)
            fin>>v[++p];
    q[++o]=k;
    cheie[k]=1;
    u[k]=1;
    while(ok==0)
    {
        ok=1;
        for(i=1; i<=o; i++)
            for(j=0; j<4; j++)
            {
                cur=q[i]+vs[j];
                if(u[cur]||cur<1||cur>n*m)
                    continue;
                if(cheie[v[cur]]==1)
                {
                    ok=0;
                    u[cur]=1;
                    q[++o]=cur;
                    cheie[cur]=1;
                }
            }
    }
    for(i=1; i<=n*m; i++)
        if(u[i]==1)
            nr++;
    fout<<nr;
    return 0;
}