Pagini recente » Borderou de evaluare (job #2810282) | Borderou de evaluare (job #1794977) | Borderou de evaluare (job #238094) | Borderou de evaluare (job #1262022) | Cod sursa (job #568328)
Cod sursa(job #568328)
#include <cstdio>
#define qmax = 22801;
using namespace std;
int n,m,k,a[155][155],xp,yp,v[22801];
int d[155][155];
const int di[4]={-1,1,0,0};
const int dj[4]={0,0,-1,1};
struct coada
{
int x;
int y;
}q[22801];
void citire()
{
int cnt=1;
scanf("%d %d %d", &m, &n, &k);
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++){
scanf("%d ", &a[i][j]);
d[i][j]=cnt++;
}
}
void lee()
{
int cnt=0;
q[0].x=xp;
q[0].y=yp;
if(q[0].y==0)
{
q[0].y=n;
q[0].x--;
}
v[k]=1;
int ok=1,u=1;
while(ok)
{
ok=0;
for(int p=0;p<u;p++)
{
for(int w=0;w<4;w++)
{
int vi=q[p].x+di[w];
int vj=q[p].y+dj[w];
if(a[vi][vj]!=0 && v[a[vi][vj]]==1)
{
q[u].x=vi;
q[u++].y=vj;
v[d[vi][vj]]=1;
a[vi][vj]=0;
cnt++;
ok=1;
}
}
}
}
printf("%d\n",cnt);
}
int main()
{
freopen("castel.in","r",stdin);
freopen("castel.out","w",stdout);
citire();
xp=k/n+1;
yp=k%n;
lee();
return 0;
}