Pagini recente » Cod sursa (job #2594949) | Cod sursa (job #3172714) | Cod sursa (job #1834743) | Cod sursa (job #2294448) | Cod sursa (job #293384)
Cod sursa(job #293384)
#include <fstream.h>
#define MaxN 155
#define MaxC 22505
int a[MaxN][MaxN],b[MaxN][MaxN],x[MaxC],y[MaxC],c[MaxC],n,m,k,dx[5]={0,0,1,0,-1},dy[5]={0,1,0,-1,0},nr;
void cit()
{
int i,j;
ifstream fin("castel.in");
fin>>n>>m>>k;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
fin>>a[i][j];
fin.close();
}
void lee()
{
int xi,yi,i,st=1,dr=1,xx,yy,cam;
if(k<=m)
{
xx=1; yy=k;
}
else
{
if(k%m>0)
yy=k%m;
else
yy=m;
xx=(k-yy)/m+1;
}
x[st]=xx; y[st]=yy;
c[k]=1; nr=1;
b[xx][yy]=1;
while(st<=dr)
{
for(i=1;i<=4;i++)
{
xi=x[st]+dx[i]; yi=y[st]+dy[i];
cam=(xi-1)*m+yi;
if(xi<=n && xi>=1 && yi<=m && yi>=1 && c[a[xi][yi]] && (!b[xi][yi] || b[xi][yi]==1))
{
dr++;
x[dr]=xi;
y[dr]=yi;
if(b[xi][yi]==0)
b[xi][yi]=1;
else
b[xi][yi]=-1;
if(!c[cam])
{
nr++;
c[cam]=1;
}
}
}
st++;
}
}
void afis()
{
ofstream fout("castel.out");
fout<<nr;
fout.close();
}
int main()
{
cit();
lee();
afis();
return 0;
}