Pagini recente » Cod sursa (job #1030570) | Cod sursa (job #1332011) | Cod sursa (job #193858) | Cod sursa (job #827721) | Cod sursa (job #370379)
Cod sursa(job #370379)
#include<fstream>
using namespace std;
ifstream f("castel.in");
ofstream g("castel.out");
int chei[22900],a[151][151],i,j,u,p,m,n,k,x,y,viz[22900],nr,w,b[151][151];
char c[2][5000000];
void citire(){
f>>m>>n>>k;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{ f>>a[i][j];
b[i][j]=(i-1)*n+j;
}
}
void init(){
p=1;u=1;
if(k%n==0){
y=n;
x=k/n;}
else {y=k%n;x=k/n+1;}
chei[a[x][y]]=1;
c[0][1]=x;
c[1][1]=y;
viz[b[x][y]]=1;
nr=1;w=1;
}
void solve(){
int dl[4]={1,0,-1,0},dc[4]={0,1,0,-1},k;
while(p<=u){
for(k=0;k<=3;k++)
if(chei[a[c[0][p]+dl[k]][c[1][p]+dc[k]]]==1&&w!=viz[b[c[0][p]+dl[k]][c[1][p]+dc[k]]])
{ u++;
c[0][u]=c[0][p]+dl[k];
c[1][u]=c[1][p]+dc[k];
if(viz[b[c[0][p]+dl[k]][c[1][p]+dc[k]]]==0)
nr++;
if(chei[b[c[0][p]+dl[k]][c[1][p]+dc[k]]]==0)
{ chei[b[c[0][p]+dl[k]][c[1][p]+dc[k]]]=1;
w++;
}
viz[b[c[0][p]+dl[k]][c[1][p]+dc[k]]]=w;
}
p++;
}
}
int main(){
citire();
init();
solve();
g<<nr;
return 0;
}