Pagini recente » Cod sursa (job #1761822) | Cod sursa (job #594360) | Cod sursa (job #2077712) | Cod sursa (job #2063717) | Cod sursa (job #2145109)
#include <cstdio>
#include <vector>
using namespace std;
struct md
{
int x,y;
};
int a[152][152];
bool viz[225005];
int dx[]={-1,0,1,0},dy[]={0,1,0,-1};
int main()
{
freopen("castel.in","r",stdin);
freopen("castel.out","w",stdout);
int m,n,k,i,j;
scanf("%d%d%d",&m,&n,&k);
for(int i=1;i<=m;i++)
for(j=1;j<=n;j++)
scanf("%d",&a[i][j]);
int x=(k+n-1)/n;
int y=k%n;
if(y==0)y=n;
vector<md>q;
md temp,temp1;
temp.x=x;temp.y=y;
a[x][y]=0;
q.push_back(temp);
int cnt=0;
viz[k]=1;
cnt=1;
int r=1;
while(r)
{
r=0;
int l=q.size(),j;
for(j=0;j<l;j++)
for(int i=0;i<4;i++)
if(a[q[j].x+dx[i]][q[j].y+dy[i]]&&viz[a[q[j].x+dx[i]][q[j].y+dy[i]]])
{
q.push_back({q[j].x+dx[i],q[j].y+dy[i]});
a[q[j].x+dx[i]][q[j].y+dy[i]]=0;
viz[(q[j].x+dx[i]-1)*n+q[j].y+dy[i]]=1;
cnt++;
r=1;
}
}
printf("%d\n",cnt);
return 0;
}