Pagini recente » Cod sursa (job #2617254) | Cod sursa (job #2823951) | Cod sursa (job #430317) | Cod sursa (job #2617115) | Cod sursa (job #183333)
Cod sursa(job #183333)
#include<fstream.h>
#include<stdlib.h>
#define g 155
using namespace std;
int a[g][g];
int main()
{
ifstream be ("castel.in");
ofstream ki ("castel.out");
int c[24000],lista[24000];
int m,n,i,j,k,sz,ok,e,v;
be>>m>>n>>k;
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
{ be>>a[i][j]; }
be.close();
for (i=1;i<=24000;i++)
c[i]=0;
ok=1;sz=1;
c[k]=1;lista[1]=k;v=1;
while (ok)
{
ok=0;
e=1;
while (e<=v)
{
k=lista[e];
//kinek nezem a szomszedjat
if (k%n)
{ i=k/n+1; j=k-((i-1)*n); }
else
{ i=k/n; j=n; }
//a negy szomszedja
if (c[a[i-1][j]]==1&&c[k-n]==0&&i>1)
{ c[k-n]=1; ok=1; sz++; lista[++v]=k-n; }
if (c[a[i][j+1]]==1&&c[k+1]==0&&j<n)
{ c[k+1]=1;ok=1;sz++;lista[++v]=k+1; }
if (c[a[i+1][j]]==1&&c[k+n]==0&&i<m)
{ c[k+n]=1; ok=1; sz++; lista[++v]=k+n; }
if (c[a[i][j-1]]==1&&c[k-1]==0&&j>1)
{ c[k-1]=1; ok=1; sz++; lista[++v]=k-1; }
e++;
}
}
ki<<sz<<'\n';
ki.close();
return 0;
}