Pagini recente » Cod sursa (job #1121488) | Cod sursa (job #1621188) | Cod sursa (job #2653847) | Cod sursa (job #2212356) | Cod sursa (job #1546619)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("castel.in");
ofstream fout("castel.out");
short a, b, m[151][151];
float k;
void citire(), _fill(short x, short y);
bool chei[151*151], marcat[151][151];
short dx[]={0, 0, 1, -1}, dy[]={1, -1, 0, 0};
int sol=0, stop=0;
int main()
{
citire();
_fill((short)ceil(k/a), short(k)%b ? short(k)%b : b);
cout<<sol;
return 0;
}
void citire()
{
cin>>a>>b>>k;
//chei[(int)ceil(k/a)][int(k)%b ? int(k)%b : b]=1;
chei[int(k)]=1;
for(short i=1; i<=a; i++)
for(short j=1; j<=b; j++)
cin>>m[i][j];
}
void _fill(short x, short y)
{
stop++;
if(!marcat[x][y])
{
sol++;
marcat[x][y]=1;
chei[(x-1)*b+y]=1;
}
else if(stop>=151*151)
return;
for(int i=0; i<=3; i++)
{
if(x+dx[i] && x+dx[i]<=a &&
y+dy[i] && y+dy[i]<=b &&
chei[m[x+dx[i]][y+dy[i]]])
_fill(x+dx[i], y+dy[i]);
}
}