Pagini recente » Borderou de evaluare (job #1203349) | Borderou de evaluare (job #2786805) | Borderou de evaluare (job #1993071) | Borderou de evaluare (job #792317) | Cod sursa (job #568227)
Cod sursa(job #568227)
// copyright Smeu si Teo, pentru ca pb asta m-a omorat de cand am citit-o prima data:)
#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;
for(int p=0,u=1;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++;
}
}
}
printf("%d\n",cnt+1);
}
int main()
{
freopen("castel.in","r",stdin);
freopen("castel.out","w",stdout);
citire();
xp=k/n+1;
yp=k%n;
lee();
return 0;
}