/*
============================================================================
Name : Bitmap.c
Author : harini
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include <stdio.h>
#include <stdlib.h>
struct node
{
int x;
int y;
struct node *next;
}*head=NULL,*temp,*tail,*cur;
int r,c,i,j,k;
int dirx[]={1,0,-1,0};
int diry[]={0,1,0,-1};
int mat[1000][1000],ans[1000][1000],flag[1000][1000];
//fn checks whether the next no is 1,,,and that elt is 0,,,returns 1 if true,,,
/*int next(int **mat,int x1,int y1)
{
int x2,y2;
if(mat[i][j]==0)
{
for(k=0;k<6;k++)
{
x2=i+dirx[k];
y2=j+diry[k];
if(x2<0 || x2>r || y2<0 || y2>c) continue;
if(mat[x2][y2]==0) return 1;
}
}
return 0;
}*/
int nextans(int ans[1000][1000],int x1,int y1)
{
int x2,y2;
if(ans[x1][y1]==0)
{
for(k=0;k<6;k++)
{
x2=x1+dirx[k];
y2=y1+diry[k];
if(x2<0 || x2>r || y2<0 || y2>c) continue;
if(ans[x2][y2]==-1) continue;
if(ans[x2][y2]==1) return 2;
if(ans[x2][y2]==0) return 1;
}
}
return 0;
}
int bitmap()
{
scanf("%d %d",&r,&c);
char matc[r][c];
for(i=0;i<r;i++)
for(j=0;j<c;j++)
{
flag[i][j]=0;
ans[i][j]=-1;
}
for(i=0;i<r;i++)
scanf("%s",matc[i]);
for(i=0;i<r;i++)
for(j=0;j<c;j++)
{
mat[i][j]=matc[i][j]-48;
}
/* for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
printf("%d\t",mat[i][j]);
printf("\n");
}*/
//case1:if the element if 1
int x2,y2;
//printf("i=%d j=%d\n",i,j);
for(i=0;i<r;i++)
for(j=0;j<c;j++)
{
// printf("i=%d j=%d\n",i,j);
if(mat[i][j]==1)// && !flag[i][j])
{
//printf("i=%d j=%d\n",i,j);
flag[i][j]=1;
ans[i][j]=0;
//put all the adjacent elts to 1(int ans) if they are not 0(in mat)
for(k=0;k<4;k++)
{
x2=i+dirx[k];
y2=j+diry[k];
if(x2<0 || y2<0 || x2>=r || y2>=c) continue;
//printf("x2=%d y2=%d\n",x2,y2);
if(mat[x2][y2]==1)
{
printf("x2=%d y2=%d mat val=1\n",x2,y2);
ans[x2][y2]=0;
flag[x2][y2]=1;
}
else
{
printf("x2=%d y2=%d mat val=0\n",x2,y2);
ans[x2][y2]=1;
flag[x2][y2]=1;
}
}
}
}
//case2:element is 0,,,,and next element is one,,,
/*if(next(mat,i,j) && !flag[i][j])
{
ans[i][j]=1;
flag[i][j]=1;
continue;
}
for(i=0;i<r;i++)
for(j=0;j<c;j++)
{
if(!flag[i][j])
{
//if both case fails,,,we add to the stack,,,
temp=(struct node*)malloc(sizeof(struct node));
temp->x=0;
temp->y=0;
temp->next=NULL;
if(head==NULL) head=temp;
for(tail=head;tail->next!=NULL;tail=tail->next);
tail->next=temp;
if(nextans(ans,i,j)==1)
ans[i][j]=1;
else{
*/
int n;
for(i=0;i<r;i++)
for(j=0;j<c;j++)
if(!flag[i][j])
{
while((n=nextans(ans,i,j))!=0)
{
printf("i=%d j=%d",i,j);
flag[i][j]=1;
if(n==2) ans[i][j]+=2;
if(n==1) ans[i][j]+=1;
}
}
printf("\nFLAG\n");
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
printf("%d\t",flag[i][j]);
printf("\n");
}
printf("\nANSWER,,,\n");
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
printf("%d\t",ans[i][j]);
printf("\n");
}
return 0;
}
int main()
{
int t;
scanf("%d",&t);
while(t-->0)
{
bitmap();
//scanf("%d %d",&r,&c);
//int ans[r][c];
}
return 0;
}
/*
============================================================================
Name : Bitmap.c
Author : harini
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include <stdio.h>
#include <stdlib.h>
struct node
{
int x;
int y;
struct node *next;
}*head=NULL,*temp,*tail,*cur;
int r,c,i,j,k;
int dirx[]={1,0,-1,0};
int diry[]={0,1,0,-1};
//fn checks whether the next no is 1,,,and that elt is 0,,,returns 1 if true,,,
/*int next(int **mat,int x1,int y1)
{
int x2,y2;
if(mat[i][j]==0)
{
for(k=0;k<6;k++)
{
x2=i+dirx[k];
y2=j+diry[k];
if(x2<0 || x2>r || y2<0 || y2>c) continue;
if(mat[x2][y2]==0) return 1;
}
}
return 0;
}*/
int nextans(int ans[1000][1000],int x1,int y1)
{
int x2,y2;
if(ans[x1][y1]==0)
{
for(k=0;k<6;k++)
{
x2=x1+dirx[k];
y2=y1+diry[k];
if(x2<0 || x2>r || y2<0 || y2>c) continue;
if(ans[x2][y2]==-1) continue;
if(ans[x2][y2]==1) return 2;
if(ans[x2][y2]==0) return 1;
}
}
return 0;
}
int bitmap()
{
scanf("%d %d",&r,&c);
int mat[r][c],ans[r][c],flag[r][c];
char matc[r][c];
for(i=0;i<r;i++)
for(j=0;j<c;j++)
{
flag[i][j]=0;
ans[i][j]=-1;
}
for(i=0;i<r;i++)
scanf("%s",matc[i]);
for(i=0;i<r;i++)
for(j=0;j<c;j++)
{
mat[i][j]=matc[i][j]-48;
}
/* for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
printf("%d\t",mat[i][j]);
printf("\n");
}*/
//case1:if the element if 1
int x2,y2;
//printf("i=%d j=%d\n",i,j);
for(i=0;i<r;i++)
for(j=0;j<c;j++)
{
// printf("i=%d j=%d\n",i,j);
if(mat[i][j]==1)// && !flag[i][j])
{
//printf("i=%d j=%d\n",i,j);
flag[i][j]=1;
ans[i][j]=0;
//put all the adjacent elts to 1(int ans) if they are not 0(in mat)
for(k=0;k<4;k++)
{
x2=i+dirx[k];
y2=j+diry[k];
if(x2<0 || y2<0 || x2>=r || y2>=c) continue;
//printf("x2=%d y2=%d\n",x2,y2);
if(mat[x2][y2]==1)
{
printf("x2=%d y2=%d mat val=1\n",x2,y2);
ans[x2][y2]=0;
flag[x2][y2]=1;
}
else
{
printf("x2=%d y2=%d mat val=0\n",x2,y2);
ans[x2][y2]=1;
flag[x2][y2]=1;
}
}
}
}
//case2:element is 0,,,,and next element is one,,,
/*if(next(mat,i,j) && !flag[i][j])
{
ans[i][j]=1;
flag[i][j]=1;
continue;
}
for(i=0;i<r;i++)
for(j=0;j<c;j++)
{
if(!flag[i][j])
{
//if both case fails,,,we add to the stack,,,
temp=(struct node*)malloc(sizeof(struct node));
temp->x=0;
temp->y=0;
temp->next=NULL;
if(head==NULL) head=temp;
for(tail=head;tail->next!=NULL;tail=tail->next);
tail->next=temp;
if(nextans(ans,i,j)==1)
ans[i][j]=1;
else{
*/
int n;
for(i=0;i<r;i++)
for(j=0;j<c;j++)
if(!flag[i][j])
{
while((n=nextans(ans,i,j))!=0)
{
printf("i=%d j=%d",i,j);
flag[i][j]=1;
if(n==2) ans[i][j]+=2;
if(n==1) ans[i][j]+=1;
}
}
printf("\nFLAG\n");
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
printf("%d\t",flag[i][j]);
printf("\n");
}
printf("\nANSWER,,,\n");
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
printf("%d\t",ans[i][j]);
printf("\n");
}
return 0;
}
int main()
{
int t;
scanf("%d",&t);
while(t-->0)
{
bitmap();
//scanf("%d %d",&r,&c);
//int ans[r][c];
}
return 0;
}
LyoKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIE5hbWUgICAgICAgIDogQml0bWFwLmMKIEF1dGhvciAgICAgIDogaGFyaW5pCiBWZXJzaW9uICAgICA6CiBDb3B5cmlnaHQgICA6IFlvdXIgY29weXJpZ2h0IG5vdGljZQogRGVzY3JpcHRpb24gOiBIZWxsbyBXb3JsZCBpbiBDLCBBbnNpLXN0eWxlCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqLwoKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnN0cnVjdCBub2RlCnsKCWludCB4OwoJaW50IHk7CglzdHJ1Y3Qgbm9kZSAqbmV4dDsKfSpoZWFkPU5VTEwsKnRlbXAsKnRhaWwsKmN1cjsKCmludCByLGMsaSxqLGs7CmludCBkaXJ4W109ezEsMCwtMSwwfTsKaW50IGRpcnlbXT17MCwxLDAsLTF9OwppbnQgbWF0WzEwMDBdWzEwMDBdLGFuc1sxMDAwXVsxMDAwXSxmbGFnWzEwMDBdWzEwMDBdOwoKLy9mbiBjaGVja3Mgd2hldGhlciB0aGUgbmV4dCBubyBpcyAxLCwsYW5kIHRoYXQgZWx0IGlzIDAsLCxyZXR1cm5zIDEgaWYgdHJ1ZSwsLAovKmludCBuZXh0KGludCAqKm1hdCxpbnQgeDEsaW50IHkxKQp7CglpbnQgeDIseTI7CglpZihtYXRbaV1bal09PTApCgl7CgkJZm9yKGs9MDtrPDY7aysrKQoJCXsKCQkJeDI9aStkaXJ4W2tdOwoJCQl5Mj1qK2Rpcnlba107CgkJCWlmKHgyPDAgfHwgeDI+ciB8fCB5MjwwIHx8IHkyPmMpIGNvbnRpbnVlOwoJCQlpZihtYXRbeDJdW3kyXT09MCkgcmV0dXJuIDE7CgkJfQoJfQoJcmV0dXJuIDA7Cn0qLwoKaW50IG5leHRhbnMoaW50IGFuc1sxMDAwXVsxMDAwXSxpbnQgeDEsaW50IHkxKQp7CglpbnQgeDIseTI7CglpZihhbnNbeDFdW3kxXT09MCkKCXsKCQlmb3Ioaz0wO2s8NjtrKyspCgkJewoJCQl4Mj14MStkaXJ4W2tdOwoJCQl5Mj15MStkaXJ5W2tdOwoJCQlpZih4MjwwIHx8IHgyPnIgfHwgeTI8MCB8fCB5Mj5jKSBjb250aW51ZTsKCQkJaWYoYW5zW3gyXVt5Ml09PS0xKSBjb250aW51ZTsKCQkJaWYoYW5zW3gyXVt5Ml09PTEpIHJldHVybiAyOwoJCQlpZihhbnNbeDJdW3kyXT09MCkgcmV0dXJuIDE7CgkJfQoJfQoJcmV0dXJuIDA7Cn0KCmludCBiaXRtYXAoKQp7CglzY2FuZigiJWQgJWQiLCZyLCZjKTsKCWNoYXIgbWF0Y1tyXVtjXTsKCWZvcihpPTA7aTxyO2krKykKCQlmb3Ioaj0wO2o8YztqKyspCgkJewoJCQlmbGFnW2ldW2pdPTA7CgkJCWFuc1tpXVtqXT0tMTsKCQl9Cglmb3IoaT0wO2k8cjtpKyspCgkJCXNjYW5mKCIlcyIsbWF0Y1tpXSk7Cglmb3IoaT0wO2k8cjtpKyspCgkJZm9yKGo9MDtqPGM7aisrKQoJCXsKCQkJbWF0W2ldW2pdPW1hdGNbaV1bal0tNDg7CgkJfQovKglmb3IoaT0wO2k8cjtpKyspCgl7CgkJZm9yKGo9MDtqPGM7aisrKQoJCQlwcmludGYoIiVkXHQiLG1hdFtpXVtqXSk7CgkJcHJpbnRmKCJcbiIpOwoJfSovCgkvL2Nhc2UxOmlmIHRoZSBlbGVtZW50IGlmIDEKCWludCB4Mix5MjsKCS8vcHJpbnRmKCJpPSVkIGo9JWRcbiIsaSxqKTsKCWZvcihpPTA7aTxyO2krKykKCQlmb3Ioaj0wO2o8YztqKyspCgkJewoJCS8vCXByaW50ZigiaT0lZCBqPSVkXG4iLGksaik7CgkJCWlmKG1hdFtpXVtqXT09MSkvLyAmJiAhZmxhZ1tpXVtqXSkKCQkJewoJCQkJLy9wcmludGYoImk9JWQgaj0lZFxuIixpLGopOwoJCQkJZmxhZ1tpXVtqXT0xOwoJCQkJYW5zW2ldW2pdPTA7CgkJCQkvL3B1dCBhbGwgdGhlIGFkamFjZW50IGVsdHMgdG8gMShpbnQgYW5zKSBpZiB0aGV5IGFyZSBub3QgMChpbiBtYXQpCgkJCQlmb3Ioaz0wO2s8NDtrKyspCgkJCQl7CgkJCQkJeDI9aStkaXJ4W2tdOwoJCQkJCXkyPWorZGlyeVtrXTsKCQkJCQlpZih4MjwwIHx8IHkyPDAgfHwgeDI+PXIgfHwgeTI+PWMpIGNvbnRpbnVlOwoJCQkJCS8vcHJpbnRmKCJ4Mj0lZCB5Mj0lZFxuIix4Mix5Mik7CgkJCQkJaWYobWF0W3gyXVt5Ml09PTEpCgkJCQkJewoJCQkJCQlwcmludGYoIngyPSVkIHkyPSVkIG1hdCB2YWw9MVxuIix4Mix5Mik7CgkJCQkJCWFuc1t4Ml1beTJdPTA7CgkJCQkJCWZsYWdbeDJdW3kyXT0xOwoJCQkJCX0KCQkJCQllbHNlCgkJCQkJewoJCQkJCQlwcmludGYoIngyPSVkIHkyPSVkIG1hdCB2YWw9MFxuIix4Mix5Mik7CgkJCQkJCWFuc1t4Ml1beTJdPTE7CgkJCQkJCWZsYWdbeDJdW3kyXT0xOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCQkJLy9jYXNlMjplbGVtZW50IGlzIDAsLCwsYW5kIG5leHQgZWxlbWVudCBpcyBvbmUsLCwKCQkJLyppZihuZXh0KG1hdCxpLGopICYmICFmbGFnW2ldW2pdKQoJCQl7CgkJCQlhbnNbaV1bal09MTsKCQkJCWZsYWdbaV1bal09MTsKCQkJCWNvbnRpbnVlOwoJCQl9CgkJCWZvcihpPTA7aTxyO2krKykKCQkJCWZvcihqPTA7ajxjO2orKykKCQkJCXsKCQkJCQlpZighZmxhZ1tpXVtqXSkKCQkJCQl7CgkJCQkJCS8vaWYgYm90aCBjYXNlIGZhaWxzLCwsd2UgYWRkIHRvIHRoZSBzdGFjaywsLAoJCQkJCQl0ZW1wPShzdHJ1Y3Qgbm9kZSopbWFsbG9jKHNpemVvZihzdHJ1Y3Qgbm9kZSkpOwoJCQkJCQl0ZW1wLT54PTA7CgkJCQkJCXRlbXAtPnk9MDsKCQkJCQkJdGVtcC0+bmV4dD1OVUxMOwoJCQkJCQlpZihoZWFkPT1OVUxMKSBoZWFkPXRlbXA7CgkJCQkJCWZvcih0YWlsPWhlYWQ7dGFpbC0+bmV4dCE9TlVMTDt0YWlsPXRhaWwtPm5leHQpOwoJCQkJCQl0YWlsLT5uZXh0PXRlbXA7CgkJCQkJCWlmKG5leHRhbnMoYW5zLGksaik9PTEpCgkJCQkJCQlhbnNbaV1bal09MTsKCQkJCQkJZWxzZXsKCQkJCQkJKi8KCWludCBuOwoJCQkJCQlmb3IoaT0wO2k8cjtpKyspCgkJCQkJCQlmb3Ioaj0wO2o8YztqKyspCgkJCQkJCQkJaWYoIWZsYWdbaV1bal0pCgkJCQkJCQl7CgkJCQkJCQkJCXdoaWxlKChuPW5leHRhbnMoYW5zLGksaikpIT0wKQoJCQkJCQkJewoJCQkJCQkJCQkJcHJpbnRmKCJpPSVkIGo9JWQiLGksaik7CgkJCQkJCQkJZmxhZ1tpXVtqXT0xOwoJCQkJCQkJCWlmKG49PTIpIGFuc1tpXVtqXSs9MjsKCQkJCQkJCQlpZihuPT0xKSBhbnNbaV1bal0rPTE7CgkJCQkJCQl9CgkJCQkJCQl9CglwcmludGYoIlxuRkxBR1xuIik7CgkJCQkJCWZvcihpPTA7aTxyO2krKykKCQkJCQkJewoJCQkJCQkJZm9yKGo9MDtqPGM7aisrKQoJCQkJCQkJCXByaW50ZigiJWRcdCIsZmxhZ1tpXVtqXSk7CgkJCQkJCQlwcmludGYoIlxuIik7CgkJCQkJCX0KCQkJCQkJcHJpbnRmKCJcbkFOU1dFUiwsLFxuIik7CgkJCQkJCWZvcihpPTA7aTxyO2krKykKCQkJCQkJewoJCQkJCQkJZm9yKGo9MDtqPGM7aisrKQoJCQkJCQkJCXByaW50ZigiJWRcdCIsYW5zW2ldW2pdKTsKCQkJCQkJCXByaW50ZigiXG4iKTsKCQkJCQkJfQoJcmV0dXJuIDA7Cn0KCmludCBtYWluKCkgCnsKCWludCB0OwoJc2NhbmYoIiVkIiwmdCk7Cgl3aGlsZSh0LS0+MCkKCXsKCQliaXRtYXAoKTsKCQkvL3NjYW5mKCIlZCAlZCIsJnIsJmMpOwoJCS8vaW50IGFuc1tyXVtjXTsKCQkKCQkKCX0KCXJldHVybiAwOwp9Ci8qCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBOYW1lICAgICAgICA6IEJpdG1hcC5jCiBBdXRob3IgICAgICA6IGhhcmluaQogVmVyc2lvbiAgICAgOgogQ29weXJpZ2h0ICAgOiBZb3VyIGNvcHlyaWdodCBub3RpY2UKIERlc2NyaXB0aW9uIDogSGVsbG8gV29ybGQgaW4gQywgQW5zaS1zdHlsZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKi8KCiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+CgpzdHJ1Y3Qgbm9kZQp7CglpbnQgeDsKCWludCB5OwoJc3RydWN0IG5vZGUgKm5leHQ7Cn0qaGVhZD1OVUxMLCp0ZW1wLCp0YWlsLCpjdXI7CgppbnQgcixjLGksaixrOwppbnQgZGlyeFtdPXsxLDAsLTEsMH07CmludCBkaXJ5W109ezAsMSwwLC0xfTsKCi8vZm4gY2hlY2tzIHdoZXRoZXIgdGhlIG5leHQgbm8gaXMgMSwsLGFuZCB0aGF0IGVsdCBpcyAwLCwscmV0dXJucyAxIGlmIHRydWUsLCwKLyppbnQgbmV4dChpbnQgKiptYXQsaW50IHgxLGludCB5MSkKewoJaW50IHgyLHkyOwoJaWYobWF0W2ldW2pdPT0wKQoJewoJCWZvcihrPTA7azw2O2srKykKCQl7CgkJCXgyPWkrZGlyeFtrXTsKCQkJeTI9aitkaXJ5W2tdOwoJCQlpZih4MjwwIHx8IHgyPnIgfHwgeTI8MCB8fCB5Mj5jKSBjb250aW51ZTsKCQkJaWYobWF0W3gyXVt5Ml09PTApIHJldHVybiAxOwoJCX0KCX0KCXJldHVybiAwOwp9Ki8KCmludCBuZXh0YW5zKGludCBhbnNbMTAwMF1bMTAwMF0saW50IHgxLGludCB5MSkKewoJaW50IHgyLHkyOwoJaWYoYW5zW3gxXVt5MV09PTApCgl7CgkJZm9yKGs9MDtrPDY7aysrKQoJCXsKCQkJeDI9eDErZGlyeFtrXTsKCQkJeTI9eTErZGlyeVtrXTsKCQkJaWYoeDI8MCB8fCB4Mj5yIHx8IHkyPDAgfHwgeTI+YykgY29udGludWU7CgkJCWlmKGFuc1t4Ml1beTJdPT0tMSkgY29udGludWU7CgkJCWlmKGFuc1t4Ml1beTJdPT0xKSByZXR1cm4gMjsKCQkJaWYoYW5zW3gyXVt5Ml09PTApIHJldHVybiAxOwoJCX0KCX0KCXJldHVybiAwOwp9CgppbnQgYml0bWFwKCkKewoJc2NhbmYoIiVkICVkIiwmciwmYyk7CglpbnQgbWF0W3JdW2NdLGFuc1tyXVtjXSxmbGFnW3JdW2NdOwoJY2hhciBtYXRjW3JdW2NdOwoJZm9yKGk9MDtpPHI7aSsrKQoJCWZvcihqPTA7ajxjO2orKykKCQl7CgkJCWZsYWdbaV1bal09MDsKCQkJYW5zW2ldW2pdPS0xOwoJCX0KCWZvcihpPTA7aTxyO2krKykKCQkJc2NhbmYoIiVzIixtYXRjW2ldKTsKCWZvcihpPTA7aTxyO2krKykKCQlmb3Ioaj0wO2o8YztqKyspCgkJewoJCQltYXRbaV1bal09bWF0Y1tpXVtqXS00ODsKCQl9Ci8qCWZvcihpPTA7aTxyO2krKykKCXsKCQlmb3Ioaj0wO2o8YztqKyspCgkJCXByaW50ZigiJWRcdCIsbWF0W2ldW2pdKTsKCQlwcmludGYoIlxuIik7Cgl9Ki8KCS8vY2FzZTE6aWYgdGhlIGVsZW1lbnQgaWYgMQoJaW50IHgyLHkyOwoJLy9wcmludGYoImk9JWQgaj0lZFxuIixpLGopOwoJZm9yKGk9MDtpPHI7aSsrKQoJCWZvcihqPTA7ajxjO2orKykKCQl7CgkJLy8JcHJpbnRmKCJpPSVkIGo9JWRcbiIsaSxqKTsKCQkJaWYobWF0W2ldW2pdPT0xKS8vICYmICFmbGFnW2ldW2pdKQoJCQl7CgkJCQkvL3ByaW50ZigiaT0lZCBqPSVkXG4iLGksaik7CgkJCQlmbGFnW2ldW2pdPTE7CgkJCQlhbnNbaV1bal09MDsKCQkJCS8vcHV0IGFsbCB0aGUgYWRqYWNlbnQgZWx0cyB0byAxKGludCBhbnMpIGlmIHRoZXkgYXJlIG5vdCAwKGluIG1hdCkKCQkJCWZvcihrPTA7azw0O2srKykKCQkJCXsKCQkJCQl4Mj1pK2Rpcnhba107CgkJCQkJeTI9aitkaXJ5W2tdOwoJCQkJCWlmKHgyPDAgfHwgeTI8MCB8fCB4Mj49ciB8fCB5Mj49YykgY29udGludWU7CgkJCQkJLy9wcmludGYoIngyPSVkIHkyPSVkXG4iLHgyLHkyKTsKCQkJCQlpZihtYXRbeDJdW3kyXT09MSkKCQkJCQl7CgkJCQkJCXByaW50ZigieDI9JWQgeTI9JWQgbWF0IHZhbD0xXG4iLHgyLHkyKTsKCQkJCQkJYW5zW3gyXVt5Ml09MDsKCQkJCQkJZmxhZ1t4Ml1beTJdPTE7CgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCXByaW50ZigieDI9JWQgeTI9JWQgbWF0IHZhbD0wXG4iLHgyLHkyKTsKCQkJCQkJYW5zW3gyXVt5Ml09MTsKCQkJCQkJZmxhZ1t4Ml1beTJdPTE7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJCQkvL2Nhc2UyOmVsZW1lbnQgaXMgMCwsLCxhbmQgbmV4dCBlbGVtZW50IGlzIG9uZSwsLAoJCQkvKmlmKG5leHQobWF0LGksaikgJiYgIWZsYWdbaV1bal0pCgkJCXsKCQkJCWFuc1tpXVtqXT0xOwoJCQkJZmxhZ1tpXVtqXT0xOwoJCQkJY29udGludWU7CgkJCX0KCQkJZm9yKGk9MDtpPHI7aSsrKQoJCQkJZm9yKGo9MDtqPGM7aisrKQoJCQkJewoJCQkJCWlmKCFmbGFnW2ldW2pdKQoJCQkJCXsKCQkJCQkJLy9pZiBib3RoIGNhc2UgZmFpbHMsLCx3ZSBhZGQgdG8gdGhlIHN0YWNrLCwsCgkJCQkJCXRlbXA9KHN0cnVjdCBub2RlKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBub2RlKSk7CgkJCQkJCXRlbXAtPng9MDsKCQkJCQkJdGVtcC0+eT0wOwoJCQkJCQl0ZW1wLT5uZXh0PU5VTEw7CgkJCQkJCWlmKGhlYWQ9PU5VTEwpIGhlYWQ9dGVtcDsKCQkJCQkJZm9yKHRhaWw9aGVhZDt0YWlsLT5uZXh0IT1OVUxMO3RhaWw9dGFpbC0+bmV4dCk7CgkJCQkJCXRhaWwtPm5leHQ9dGVtcDsKCQkJCQkJaWYobmV4dGFucyhhbnMsaSxqKT09MSkKCQkJCQkJCWFuc1tpXVtqXT0xOwoJCQkJCQllbHNlewoJCQkJCQkqLwoJaW50IG47CgkJCQkJCWZvcihpPTA7aTxyO2krKykKCQkJCQkJCWZvcihqPTA7ajxjO2orKykKCQkJCQkJCQlpZighZmxhZ1tpXVtqXSkKCQkJCQkJCXsKCQkJCQkJCQkJd2hpbGUoKG49bmV4dGFucyhhbnMsaSxqKSkhPTApCgkJCQkJCQl7CgkJCQkJCQkJCQlwcmludGYoImk9JWQgaj0lZCIsaSxqKTsKCQkJCQkJCQlmbGFnW2ldW2pdPTE7CgkJCQkJCQkJaWYobj09MikgYW5zW2ldW2pdKz0yOwoJCQkJCQkJCWlmKG49PTEpIGFuc1tpXVtqXSs9MTsKCQkJCQkJCX0KCQkJCQkJCX0KCXByaW50ZigiXG5GTEFHXG4iKTsKCQkJCQkJZm9yKGk9MDtpPHI7aSsrKQoJCQkJCQl7CgkJCQkJCQlmb3Ioaj0wO2o8YztqKyspCgkJCQkJCQkJcHJpbnRmKCIlZFx0IixmbGFnW2ldW2pdKTsKCQkJCQkJCXByaW50ZigiXG4iKTsKCQkJCQkJfQoJCQkJCQlwcmludGYoIlxuQU5TV0VSLCwsXG4iKTsKCQkJCQkJZm9yKGk9MDtpPHI7aSsrKQoJCQkJCQl7CgkJCQkJCQlmb3Ioaj0wO2o8YztqKyspCgkJCQkJCQkJcHJpbnRmKCIlZFx0IixhbnNbaV1bal0pOwoJCQkJCQkJcHJpbnRmKCJcbiIpOwoJCQkJCQl9CglyZXR1cm4gMDsKfQoKaW50IG1haW4oKSAKewoJaW50IHQ7CglzY2FuZigiJWQiLCZ0KTsKCXdoaWxlKHQtLT4wKQoJewoJCWJpdG1hcCgpOwoJCS8vc2NhbmYoIiVkICVkIiwmciwmYyk7CgkJLy9pbnQgYW5zW3JdW2NdOwoJCQoJCQoJfQoJcmV0dXJuIDA7Cn0K
prog.cpp:199:8: error: redefinition of 'struct node'
struct node
^
prog.cpp:14:8: error: previous definition of 'struct node'
struct node
^
prog.cpp:204:3: error: conflicting declaration 'int* head'
}*head=NULL,*temp,*tail,*cur;
^
prog.cpp:19:3: note: previous declaration as 'node* head'
}*head=NULL,*temp,*tail,*cur;
^
prog.cpp:204:14: error: conflicting declaration 'int* temp'
}*head=NULL,*temp,*tail,*cur;
^
prog.cpp:19:14: note: previous declaration as 'node* temp'
}*head=NULL,*temp,*tail,*cur;
^
prog.cpp:204:20: error: conflicting declaration 'int* tail'
}*head=NULL,*temp,*tail,*cur;
^
prog.cpp:19:20: note: previous declaration as 'node* tail'
}*head=NULL,*temp,*tail,*cur;
^
prog.cpp:204:26: error: conflicting declaration 'int* cur'
}*head=NULL,*temp,*tail,*cur;
^
prog.cpp:19:26: note: previous declaration as 'node* cur'
}*head=NULL,*temp,*tail,*cur;
^
prog.cpp:206:5: error: redefinition of 'int r'
int r,c,i,j,k;
^
prog.cpp:21:5: note: 'int r' previously declared here
int r,c,i,j,k;
^
prog.cpp:206:7: error: redefinition of 'int c'
int r,c,i,j,k;
^
prog.cpp:21:7: note: 'int c' previously declared here
int r,c,i,j,k;
^
prog.cpp:206:9: error: redefinition of 'int i'
int r,c,i,j,k;
^
prog.cpp:21:9: note: 'int i' previously declared here
int r,c,i,j,k;
^
prog.cpp:206:11: error: redefinition of 'int j'
int r,c,i,j,k;
^
prog.cpp:21:11: note: 'int j' previously declared here
int r,c,i,j,k;
^
prog.cpp:206:13: error: redefinition of 'int k'
int r,c,i,j,k;
^
prog.cpp:21:13: note: 'int k' previously declared here
int r,c,i,j,k;
^
prog.cpp:207:10: error: redefinition of 'int dirx []'
int dirx[]={1,0,-1,0};
^
prog.cpp:22:5: note: 'int dirx [4]' previously defined here
int dirx[]={1,0,-1,0};
^
prog.cpp:208:10: error: redefinition of 'int diry []'
int diry[]={0,1,0,-1};
^
prog.cpp:23:5: note: 'int diry [4]' previously defined here
int diry[]={0,1,0,-1};
^
prog.cpp: In function 'int nextans(int (*)[1000], int, int)':
prog.cpp:227:5: error: redefinition of 'int nextans(int (*)[1000], int, int)'
int nextans(int ans[1000][1000],int x1,int y1)
^
prog.cpp:43:5: note: 'int nextans(int (*)[1000], int, int)' previously defined here
int nextans(int ans[1000][1000],int x1,int y1)
^
prog.cpp: In function 'int bitmap()':
prog.cpp:245:5: error: redefinition of 'int bitmap()'
int bitmap()
^
prog.cpp:61:5: note: 'int bitmap()' previously defined here
int bitmap()
^
prog.cpp:332:34: error: cannot convert 'int (*)[c]' to 'int (*)[1000]' for argument '1' to 'int nextans(int (*)[1000], int, int)'
while((n=nextans(ans,i,j))!=0)
^
prog.cpp: In function 'int main()':
prog.cpp:357:5: error: redefinition of 'int main()'
int main()
^
prog.cpp:172:5: note: 'int main()' previously defined here
int main()
^