Cod sursa(job #1221091)

Utilizator bogdanboboc97Bogdan Boboc bogdanboboc97 Data 19 august 2014 13:42:18
Problema Castel Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#define M 152
using namespace std;

ifstream cin("castel.in");
ofstream cout("castel.out");

int a[M][M],b[M][M],i,j,n,m,ok,nr,p,prim,ultim,t[M*M],o,p1,p2,k;
int x[]={0,0,1,-1};
int y[]={1,-1,0,0};
bool z[M][M];
struct abc{
    int l,c;
}q[M*M];

int main()
{
    cin>>n>>m>>p;
    for(i=o=1;i<=n;i++)
    for(j=1;j<=m;j++,o++)
    {
        cin>>a[i][j];
        b[i][j]=o;
        if(p==o)p1=i,p2=j;
    }
    t[p]=1;z[p1][p2]=true;
    prim=ultim=nr=1;
    q[1].l=p1;q[1].c=p2;
    ok=1;
    while(ok)
    for(prim=1,ok=0;prim<=ultim;prim++)
    for(k=0;k<4;k++)
    {
        i=q[prim].l+x[k];
        j=q[prim].c+y[k];
        if(z[i][j]==0&& t[a[i][j]]==1 && i>0 && i<=n && j>0 && j<=m)
        {
            ultim++;q[ultim].l=i;q[ultim].c=j;
            t[b[i][j]]=1;z[i][j]=1;nr++;ok=1;
        }
    }
    cout<<nr;
    return 0;
}