Pagini recente » Cod sursa (job #503383) | Cod sursa (job #2128981) | Cod sursa (job #299776) | Statistici Muresan Gabi (twinkey_gunner) | Cod sursa (job #370294)
Cod sursa(job #370294)
#include<fstream.h>
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=k%n;
else y=n;
x=k/(n+1)+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;
}