Pagini recente » Cod sursa (job #289534) | Cod sursa (job #1533558) | Istoria paginii agm-2018 | Cod sursa (job #741010) | Cod sursa (job #1130762)
#include <fstream>
using namespace std;
ifstream f("castel.in");
ofstream g("castel.out");
long long a[151][151],i,j,x,y,n,m,b[151][151],c[151][151],d[151],k,l,o,p,ok;
int main()
{f>>x>>y>>n;
for(i=1;i<=x;i++)
for(j=1;j<=y;j++)f>>a[i][j];
m=1;
for(i=1;i<=x;i++)
for(j=1;j<=y;j++){b[i][j]=m; m=m+1;}
ok=1;
for(i=1;i<=x&&ok;i++)
for(j=1;j<=y;j++){if(b[i][j]==n){c[i][j]=1; d[1]=n; ok=0;}}
o=1;
k=1; p=1;
while(k!=0)
{k=0;
for(i=1;i<=x;i++)
for(j=1;j<=y;j++)if(c[i][j]==1)
{if(c[i][j+1]==0&&a[i][j+1]!=0)
{ok=1; for(l=1;l<=o&&ok;l++)if(a[i][j+1]==d[l]){ok=0; o++; d[o]=b[i][j+1];}
if(ok==0){c[i][j+1]=1; k++;p++;}}
if(c[i][j-1]==0&&a[i][j-1]!=0)
{ok=1; for(l=1;l<=o&&ok;l++)if(a[i][j-1]==d[l]){ok=0; o++; d[o]=b[i][j-1];}
if(ok==0){c[i][j-1]=1; k++;p++;}}
if(c[i+1][j]==0&&a[i+1][j]!=0)
{ok=1; for(l=1;l<=o&&ok;l++)if(a[i+1][j]==d[l]){ok=0; o++; d[o]=b[i+1][j];}
if(ok==0){c[i+1][j]=1; k++;p++;}}
if(c[i-1][j]==0&&a[i-1][j]!=0)
{ok=1; for(l=1;l<=o&&ok;l++)if(a[i-1][j]==d[l]){ok=0; o++; d[o]=b[i-1][j];}
if(ok==0){c[i-1][j]=1; k++;p++;}}
}}
g<<p;
return 0;}