Mai intai trebuie sa te autentifici.
Cod sursa(job #1221091)
Utilizator | 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;
}