Pagini recente » Cod sursa (job #678121) | Cod sursa (job #1119278) | Cod sursa (job #2535864) | Cod sursa (job #854480) | Cod sursa (job #1138111)
#include<fstream>
#include<map>
using namespace std;
ifstream f("castel.in");
ofstream g("castel.out");
int n,m,i,j,k,dr,nrel,x,y,xx,yy,nr,l,ok;
int dx[]={-1,0,1,0};
int dy[]={0,1,0,-1};
map<int,bool>b;
map<int,int>q[2];
struct pie{
int x,y,ver;
}a[155][155];
int ver(int x,int y)
{
if(x>=1&&x<=n&&y>=1&&y<=m) return 1;
return 0;
}
int main()
{
f>>n>>m>>k;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
f>>a[i][j].x;
nr++;
a[i][j].y=nr;
if(nr==k)
{
dr++;
q[0][dr]=i;
q[1][dr]=j;
b[nr]=1;
a[i][j].ver=1;
nrel++;
}
}
ok=1;
while(ok==1)
{
ok=0;
for(j=1;j<=dr;j++)
{
x=q[0][j];
y=q[1][j];
for(i=0;i<4;i++)
{
xx=x+dx[i];
yy=y+dy[i];
if(ver(xx,yy)==1)
if(a[xx][yy].ver==0&&b[a[xx][yy].x]==1)
{
dr++;
q[0][dr]=xx;
q[1][dr]=yy;
b[a[xx][yy].y]=1;
a[xx][yy].ver=1;
nrel++;
ok=1;
}
}
}
}
g<<nrel;
return 0;
}