Pagini recente » Cod sursa (job #1221175) | Cod sursa (job #1042887) | Cod sursa (job #1948641) | Cod sursa (job #550577) | Cod sursa (job #2122592)
#include<fstream>
using namespace std;
ifstream fin("castel.in");
ofstream fout("castel.out");
int N,M,K,A[153][153],Viz[153][153],Dim,Cheie[153*153],Lin[4]={1,-1,0,0},Col[4]={0,0,1,-1};
pair <int, int> Coada[153*153];
int Check(int X,int Y)
{
return (X>=1 && X<=N && Y>=1 && Y<=M);
}
int main()
{
fin >> N >> M >> K;
for(int i=1;i<=N;i++)
for(int j=1;j<=M;j++)
fin >> A[i][j];
if(K%M==0)
{
Coada[1]=make_pair(K/M,M);
Viz[K/M][M]=1;
Cheie[K]=1;
}
else
{
Coada[1]=make_pair(K/M+1,K%M);
Cheie[K]=1;
Viz[K/M+1][K%M]=1;
}
Dim=1;
int Continuare=1;
while(Continuare==1)
{
Continuare=0;
for(int i=1;i<=Dim;i++)
{
for(int k=0;k<4;k++)
{
int NewX=Lin[k]+Coada[i].first,NewY=Coada[i].second+Col[k];
if(Cheie[A[NewX][NewY]]==1 && Check(NewX,NewY) && Viz[NewX][NewY]==0)
{
Dim++;
Coada[Dim]=make_pair(NewX,NewY);
Continuare=1;
Cheie[(NewX-1)*M+NewY]=1;
Viz[NewX][NewY]=1;
}
}
}
}
fout<<Dim<<'\n';
}