#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define W 12
#define H 10
char map[H][W]={
{1,1,1,1,1,1,1,1,1,1,1},
{1,0,0,0,0,0,0,1,0,0,0,1},
{1,0,1,1,0,0,1,1,0,1,0,1},
{1,0,1,0,0,1,2,0,0,1,0,1},
{1,0,0,0,0,0,1,1,1,0,0,1},
{1,0,1,1,1,1,0,1,0,0,0,1},
{1,0,1,0,0,0,0,1,0,0,0,1},
{1,0,1,0,1,0,1,1,0,0,0,1},
{1,0,0,0,1,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1,1,1},
};
void print_map(){
int i,s;
for(i=0;i<10;i++){
for(s=0;s<12;s++){
}
}
}
void maze0(int x,int y){
if(map[y][x]==0) {
maze0(x,y-1);
maze0(x,y+1);
maze0(x-1,y);
maze0(x+1,y);
}
if(map[y][x]==1){
}
if(map[y][x]==2){
}
}
/*すでに探索が終了している場所を周回してしまい
ループしてしまうから*/
void maze1(int x,int y,char his[H][W]){
static char newhis[H][W];
if(map[y][x]==0) {
newhis[y][x]=1;
if(newhis[y-1][x]!=1) maze1(x,y-1,newhis);
if(newhis[y+1][x]!=1) maze1(x,y+1,newhis);
if(newhis[y][x-1]!=1) maze1(x-1,y,newhis);
if(newhis[y][x+1]!=1) maze1(x+1,y,newhis);
}
if(map[y][x]==1){
}
if(map[y][x]==2){
}
}
void maze2(int x,int y,char his[H][W]){
static char newhis[H][W];
int i,s;
if(map[y][x]==0) {
newhis[y][x]=1;
if(newhis[y-1][x]!=1) maze2(x,y-1,newhis);
if(newhis[y+1][x]!=1) maze2(x,y+1,newhis);
if(newhis[y][x-1]!=1) maze2(x-1,y,newhis);
if(newhis[y][x+1]!=1) maze2(x+1,y,newhis);
}
if(map[y][x]==1){
}
if(map[y][x]==2){
for(i=0;i<10;i++){
for(s=0;s<12;s++){
if(his[i][s]==1) map[i][s]=3;
}
}
print_map();
}
}
int main()
{
static char his[H][W];
print_map();
maze2(1,1,his);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojZGVmaW5lIFcgMTIKI2RlZmluZSBIIDEwCmNoYXIgbWFwW0hdW1ddPXsKezEsMSwxLDEsMSwxLDEsMSwxLDEsMX0sCnsxLDAsMCwwLDAsMCwwLDEsMCwwLDAsMX0sCnsxLDAsMSwxLDAsMCwxLDEsMCwxLDAsMX0sCnsxLDAsMSwwLDAsMSwyLDAsMCwxLDAsMX0sCnsxLDAsMCwwLDAsMCwxLDEsMSwwLDAsMX0sCnsxLDAsMSwxLDEsMSwwLDEsMCwwLDAsMX0sCnsxLDAsMSwwLDAsMCwwLDEsMCwwLDAsMX0sCnsxLDAsMSwwLDEsMCwxLDEsMCwwLDAsMX0sCnsxLDAsMCwwLDEsMCwwLDAsMCwwLDAsMX0sCnsxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMX0sCn07CnZvaWQgcHJpbnRfbWFwKCl7CgkJaW50IGksczsKCWZvcihpPTA7aTwxMDtpKyspewoJCWZvcihzPTA7czwxMjtzKyspewoJCQlpZihtYXBbaV1bc109PTEpIHByaW50ZigiIyIpOwoJCQlpZihtYXBbaV1bc109PTApIHByaW50ZigiICIpOwoJCQlpZihtYXBbaV1bc109PTIpIHByaW50ZigiRyIpOwoJCQlpZihtYXBbaV1bc109PTMpIHByaW50ZigiLiIpOwoJCX0KCQlwcmludGYoIlxuIik7Cgl9Cn0KCnZvaWQgbWF6ZTAoaW50IHgsaW50IHkpewoJaWYobWFwW3ldW3hdPT0wKSB7CgkJcHJpbnRmKCIoJWQsJWQpXG4iLHgseSk7CgkJbWF6ZTAoeCx5LTEpOwoJCW1hemUwKHgseSsxKTsKCQltYXplMCh4LTEseSk7CgkJbWF6ZTAoeCsxLHkpOwoJfQoJaWYobWFwW3ldW3hdPT0xKXsKCQlwcmludGYoIiglZCwlZClYIix4LHkpOwoJfQoJaWYobWFwW3ldW3hdPT0yKXsKCQlwcmludGYoIiglZCwlZClPSyIseCx5KTsKCQlleGl0KDApOwoJfQp9Ci8q44GZ44Gn44Gr5o6i57Si44GM57WC5LqG44GX44Gm44GE44KL5aC05omA44KS5ZGo5Zue44GX44Gm44GX44G+44GECuODq+ODvOODl+OBl+OBpuOBl+OBvuOBhuOBi+OCiSovCnZvaWQgbWF6ZTEoaW50IHgsaW50IHksY2hhciBoaXNbSF1bV10pewoJc3RhdGljIGNoYXIgbmV3aGlzW0hdW1ddOwoJaWYobWFwW3ldW3hdPT0wKSB7CgkJcHJpbnRmKCIoJWQsJWQpXG4iLHgseSk7CgkJbWVtY3B5KG5ld2hpcywgaGlzLCBIKlcpOwoJCW5ld2hpc1t5XVt4XT0xOwoJCWlmKG5ld2hpc1t5LTFdW3hdIT0xKSBtYXplMSh4LHktMSxuZXdoaXMpOwoJCWlmKG5ld2hpc1t5KzFdW3hdIT0xKSBtYXplMSh4LHkrMSxuZXdoaXMpOwoJCWlmKG5ld2hpc1t5XVt4LTFdIT0xKSBtYXplMSh4LTEseSxuZXdoaXMpOwoJCWlmKG5ld2hpc1t5XVt4KzFdIT0xKSBtYXplMSh4KzEseSxuZXdoaXMpOwoJfQoJaWYobWFwW3ldW3hdPT0xKXsKCQlwcmludGYoIiglZCwlZClYIix4LHkpOwoJfQoJaWYobWFwW3ldW3hdPT0yKXsKCQlwcmludGYoIiglZCwlZClPSyIseCx5KTsKCQlleGl0KDApOwoJfQp9Cgp2b2lkIG1hemUyKGludCB4LGludCB5LGNoYXIgaGlzW0hdW1ddKXsKCXN0YXRpYyBjaGFyIG5ld2hpc1tIXVtXXTsKCWludCBpLHM7CglpZihtYXBbeV1beF09PTApIHsKCQlwcmludGYoIiglZCwlZClcbiIseCx5KTsKCQltZW1jcHkobmV3aGlzLCBoaXMsIEgqVyk7CgkJbmV3aGlzW3ldW3hdPTE7CgkJaWYobmV3aGlzW3ktMV1beF0hPTEpIG1hemUyKHgseS0xLG5ld2hpcyk7CgkJaWYobmV3aGlzW3krMV1beF0hPTEpIG1hemUyKHgseSsxLG5ld2hpcyk7CgkJaWYobmV3aGlzW3ldW3gtMV0hPTEpIG1hemUyKHgtMSx5LG5ld2hpcyk7CgkJaWYobmV3aGlzW3ldW3grMV0hPTEpIG1hemUyKHgrMSx5LG5ld2hpcyk7Cgl9CglpZihtYXBbeV1beF09PTEpewoJCXByaW50ZigiKCVkLCVkKVgiLHgseSk7Cgl9CglpZihtYXBbeV1beF09PTIpewoJCXByaW50ZigiKCVkLCVkKU9LXG4iLHgseSk7CgkJZm9yKGk9MDtpPDEwO2krKyl7CgkJCWZvcihzPTA7czwxMjtzKyspewoJCQkJaWYoaGlzW2ldW3NdPT0xKSBtYXBbaV1bc109MzsKCQkJfQoJCX0KCQlwcmludF9tYXAoKTsKCQlleGl0KDApOwoJfQp9CgppbnQgbWFpbigpCnsKCXN0YXRpYyBjaGFyIGhpc1tIXVtXXTsKCXByaW50X21hcCgpOwoJbWF6ZTIoMSwxLGhpcyk7CnJldHVybiAwOwp9Cg==