Pagini recente » Cod sursa (job #325085) | Cod sursa (job #1881437) | Cod sursa (job #2519281) | Cod sursa (job #77951) | Cod sursa (job #178210)
Cod sursa(job #178210)
#include<stdio.h>
#include<search.h>
long li,ci,a,b,c,nc,ii,i,j,l,n,m,np;
FILE *f1,*f2;
int lee[23111],chei[23111],ma[155][155];
void stergere(){
for(ii=j;ii<=l;lee[ii]=lee[ii+1],ii++);
l--;
}
void Ladaugare(int a){
c=1;
for(ii=1;c&&ii<=l;ii++){
if(lee[ii]==a){
c=0;
}
}
if(c){
l++;
lee[l]=a;
}
}
void Cadaugare(){
c=1;
for(ii=1;c&&ii<=nc;ii++){
if(chei[ii]==lee[j]){
c=0;
}
}
if(c){
nc++;
chei[nc]=lee[j];
}
}
int main(){
f1=fopen("castel.in","r");
f2=fopen("castel.out","w");
fscanf(f1,"%ld%ld%ld",&m,&n,&a);
for(i=1;i<=m;i++){
for(j=1;j<=n;fscanf(f1,"%d",&ma[i][j]),j++);
}
nc=1;
chei[1]=a;
l=1;
lee[1]=a;
i=1;
while(i<=nc){
j=1;
while(j<=l){
li=(lee[j]-1)/n+1;
ci=(lee[j]-1)%n+1;
if(ma[li][ci]==chei[i]){
if(li<m&&ma[li+1][ci]>0){
Ladaugare(lee[j]+n);
}
if(li>1&&ma[li-1][ci]>0){
Ladaugare(lee[j]-n);
}
if(ci<n&&ma[li][ci+1]>0){
Ladaugare(lee[j]+1);
}
if(ci>1&&ma[li][ci-1]>0){
Ladaugare(lee[j]-1);
}
Cadaugare();
stergere();
ma[li][ci]*=-1;
j--;
}
j++;
}
i++;
}
a=0;
for(i=1;i<=m;i++){
for(j=1;j<=n;j++){
if(ma[i][j]<0){
a++;
}
}
}
fprintf(f2,"%ld",a);
return 0;
}