Pagini recente » Cod sursa (job #2780745) | Cod sursa (job #3133249) | Cod sursa (job #395525) | Cod sursa (job #2114671) | Cod sursa (job #1482313)
#include <cstdio>
#define DIM 160
using namespace std;
int A[DIM][DIM], V[DIM][DIM] , nr, st, N, is, K;
int C[DIM*DIM][5], W[DIM*DIM], ok, dr, M, js;
int Di[5] = {0,-1, 0, 1, 0};
int Dj[5] = {0, 0, 1, 0,-1};
int main(){
freopen("castel.in" ,"r", stdin );
freopen("castel.out","w", stdout);
scanf("%d %d %d", &N, &M, &K);
for(int i = 1; i <= N; i ++)
for(int j = 1; j <= M; j ++)
scanf("%d", &A[i][j]);
is = K / M + 1;
js = K % M;
if(K % M == 0){
is --;
js = M;
}
st = 1, dr = 1, ok = 1, nr = 1;
C[1][1] = is;
C[1][2] = js;
W[K] = 1;
V[is][js] = 1;
while(ok){
ok = 0; int dr2 = dr;
for(int i = st; i <= dr2; i ++){
int ic = C[i][1];
int jc = C[i][2];
for(int d = 1; d <= 4; d ++){
int iv = ic + Di[d];
int jv = jc + Dj[d];
if(iv >= 1 && iv <= N)
if(jv >= 1 && jv <= M)
if(V[iv][jv] == 0)
if(W[A[iv][jv]] == 1){
dr ++;
C[dr][1] = iv;
C[dr][2] = jv;
V[iv][jv] = 1;
W[M*(iv-1)+jv] = 1;
ok = 1; nr ++;
}
}
}
}
printf("%d", dr);
/*for(int i = 1; i <= dr; i ++)
printf("%d %d\n", C[i][1], C[i][2]);*/
fclose(stdin );
fclose(stdout);
return 0;
}