Pagini recente » Cod sursa (job #1190965) | Cod sursa (job #2700420) | Cod sursa (job #3189948) | Cod sursa (job #724583) | Cod sursa (job #863442)
Cod sursa(job #863442)
#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 mat[151][151],m[151][151],i,j,tot,xi,yi,n,k,key[30000],sol,sol1,M;
void back(int x,int y)
{
if(!mat[x][y])
{
++sol;
key[(x-1)*M+y]=1;
}
mat[x][y]++;
for(int e=1;e<=4;++e)
{
if((dx[e]+x)&&(dx[e]+x<=n)&&(dy[e]+y)&&(dy[e]+y<=M)&&key[m[x+dx[e]][y+dy[e]]]&&mat[x+dx[e]][y+dy[e]]!=tot)
back(x+dx[e],y+dy[e]);
}
}
int main ()
{
f>>n>>M>>k;
while(k>M)
{
xi++;
k-=M;
}
++xi;
yi=k;
for(i=1;i<=n;++i)
for(j=1;j<=M;++j)
f>>m[i][j];
sol1=-1;
tot=1;
while(sol!=sol1)
{
sol1=sol;
back(xi,yi);
++tot;
}
g<<sol;
return 0;
}