Pagini recente » Cod sursa (job #1984627) | Cod sursa (job #3124437) | Cod sursa (job #2689119) | Cod sursa (job #2032277) | Cod sursa (job #863482)
Cod sursa(job #863482)
#include<fstream>
using namespace std;
ifstream f("castel.in");
ofstream g("castel.out");
int dx[]={0,0,-1,0,1};
int dy[]={0,-1,0,1,0};
int m[151][151],i,j,tot,xi,yi,n,k,u,T,p,nr,xc,yc,key[30000],qx[30000],qy[30000],x[30000],y[30000],sol,sol1,M;
bool mat[151][151],check[151][151];
int main ()
{
f>>n>>M>>k;
while(k>M)
{
xi++;
k-=M;
}
++xi;
qx[1]=xi;
key[k]=1;
yi=k;
qy[1]=yi;
for(i=1;i<=n;++i)
for(j=1;j<=M;++j)
f>>m[i][j];
sol=1;
nr=1;
for(k=1;k<=nr;++k)
{
x[1]=qx[k];
y[1]=qy[k];
p=u=1;
while(p<=u)
{
T=0;
for(i=1;i<=4;++i)
{
xc=x[p]+dx[i];
yc=y[p]+dy[i];
if(xc>0&&yc>0&&xc<=n&&yc<=M&&key[m[xc][yc]]&&!mat[xc][yc])
{
T=1;
++sol;
mat[xc][yc]=1;
key[(xc-1)*M+yc]=1;
x[++u]=xc;
y[u]=yc;
}
}
if(!T&&!check[x[p]][y[p]])
{
check[x[p]][y[p]]=1;
qx[++nr]=x[p];
qy[++nr]=y[p];
}
++p;
}
}
g<<sol;
return 0;
}