题目描述
一天早上,你起床的时候想:“我编程序这么牛,为什么不能靠这个赚点小钱呢?”因此你决定编写一个小游戏。
游戏在一个分割成w * h个正方格子的矩形板上进行。如图所示,每个正方格子上可以有一张游戏卡片,当然也可以没有。
当下面的情况满足时,我们认为两个游戏卡片之间有一条路径相连:
路径只包含水平或者竖直的直线段。路径不能穿过别的游戏卡片。但是允许路径临时的离开矩形板。下面是一个例子:
![](https://i-blog.csdnimg.cn/blog_migrate/825fcb433fde19f11e5a82b98ea21155.jpeg)
这里在 (1, 3)和 (4, 4)处的游戏卡片是可以相连的。而在 (2, 3) 和 (3, 4) 处的游戏卡是不相连的,因为连接他们的每条路径都必须要穿过别的游戏卡片。
你现在要在小游戏里面判断是否存在一条满足题意的路径能连接给定的两个游戏卡片。
输入要求
输入包括多组数据。一个矩形板对应一组数据。每组数据包括的第一行包括两个整数w和h (1 <= w, h <= 75),分别表示矩形板的宽度和长度。下面的h行,每行包括w个字符,表示矩形板上的游戏卡片分布情况。使用‘X’表示这个地方有一个游戏卡片;使用空格表示这个地方没有游戏卡片。
之后的若干行上每行上包括4个整数x1, y1, x2, y2 (1 <= x1, x2 <= w, 1 <= y1, y2 <= h)。给出两个卡片在矩形板上的位置(注意:矩形板左上角的坐标是(1, 1))。输入保证这两个游戏卡片所处的位置是不相同的。如果一行上有4个0,表示这组测试数据的结束。
如果一行上给出w = h = 0,那么表示所有的输入结束了。
输出要求
对每一个矩形板,输出一行“Board #n:”,这里n是输入数据的编号。然后对每一组需要测试的游戏卡片输出一行。这一行的开头是“Pair m: ”,这里m是测试卡片的编号(对每个矩形板,编号都从1开始)。接下来,如果可以相连,找到连接这两个卡片的所有路径中包括线段数最少的路径,输出“k segments.”,这里k是找到的最优路径中包括的线段的数目;如果不能相连,输出“impossible.”。
每组数据之后输出一个空行。
假如输入
5 4
XXXXX
X X
XXX X
XXX
2 3 5 3
1 3 4 4
2 3 3 4
0 0 0 0
0 0
应当输出
Board #1:
Pair 1: 4 segments.
Pair 2: 3 segments.
Pair 3: impossible.
我用的bfs+回溯,先用bfs到达那一点,然后再走回去记录变了几个方向便是结果,时间很快。
今天发现上面的做法是错误的,应该用深搜,因为最小线段的解不一定是在最短长度里,所以广搜是错误的,下面给出正解及误解,这回绝对是正解了,哈哈哈哈。很多人用的是递归,找了别人的代码跟自己的测试数据作对比,别人的输出数据发现都有些问题,不能跟我的对上,我打表出来观察我这次的肯定是正解。下面是我的代码以及测试数据及输出
正解:
#include<iostream>
#include<algorithm>
#include <vector>
#include<string.h>
#include<ctype.h>
#include<math.h>
#include<fstream>
using namespace std;
#define MANIN 100
struct point
{
int x,y;
}_end,start;
char map[MANIN+2][MANIN+2],map1[MANIN+2][MANIN+2];
int minstep,w,h,dis[4][2]={
{-1,0},{1,0},{0,-1},{0,1}};
void findMinStep(int x,int y,int dire,int fdire,int step)
{
if(dire!=fdire)
step++;
if(x==_end.x&&y==_end.y)
{
if(step<minstep)
minstep=step;
return;
}
int i;
if(step>=minstep)
return;
else
{
map[y][x]='X';
for(i=0;i<4;i++)
if(map[y+dis[i][1]][x+dis[i][0]]==' ')
findMinStep(x+dis[i][0],y+dis[i][1],i,dire,step);
map[y][x]=' ';
}
}
int main()
{
freopen( "test.in " , " r " ,stdin);
freopen( "test.out " , " w " ,stdout);
int Boardnum=1;
while(scanf("%d%d",&w,&h)!=-1&&w||h)
{
printf("Board #%d:\n",Boardnum++);
memset(map,'X',sizeof(map));
int i,j;
for(i=1;i<=w+2;i++)
map[1][i]=map[h+2][i]=' ';
for(i=1;i<=h+2;i++)
map[i][1]=map[i][w+2]=' ';
for(i=2;i<h+2;i++)
{
getchar();
for(j=2;j<w+2;j++)
map[i][j]=getchar();
}
memcpy(map1,map,sizeof(map));
int cnt=1;
while(scanf("%d%d%d%d",&start.x,&start.y,&_end.x,&_end.y)&&start.x)
{
start.y++,start.x++,_end.x++,_end.y++;
map[_end.y][_end.x]=' ';
minstep=16;//根据输出文件观测得最大深度是15,所以16就足够了,如果值取大了会造成递归加深。
findMinStep(start.x,start.y,4,4,0);
if(minstep==16)
printf("Pair %d: impossible.\n",cnt++);
else
printf("Pair %d: %d segments.\n",cnt++,minstep);
memcpy(map,map1,sizeof(map1));
}
printf("\n");
}
fclose(stdin);
fclose(stdout);
return 0;
}
误解:
#include<iostream>
#include<algorithm>
#include <vector>
#include<string.h>
#include<ctype.h>
#include<math.h>
#include<fstream>
using namespace std;
#define MANIN 100
struct point
{
int x,y;
};
struct point _end,start,r[100000];
char map[MANIN+2][MANIN+2];
int minstep,w,h,dis[4][2]={
{0,-1},{1,0},{0,1},{-1,0}};
int res[MANIN+2][MANIN+2],num;
char buffer[256];
void finNum(int x,int y,int step,int f,int qf)
{
int i,mark;
if(qf!=f)
step++;
if(step>num)
return;
if(x==start.x+1&&y==start.y+1)
{
num=step;
return;
}
for(i=0;i<4;i++)
{
if(res[x+dis[i][0]][y+dis[i][1]]==res[x][y]-1)
{
finNum(x+dis[i][0],y+dis[i][1],step,i,f);
}
}
}
void bfs()
{
int tail=1, head=0,i,x1,y1;
r[0].x=start.x+1;
r[0].y=start.y+1;
while(tail != head)
{
x1=r[head].x;
y1=r[head].y;
for(i=0; i<4; i++)
{
x1+=dis[i][0], y1+=dis[i][1];
if(map[x1][y1]==' '&&res[x1][y1]==-1)
{
r[tail].x=x1;
r[tail].y=y1;
res[x1][y1] = 1 + res[x1-dis[i][0]][y1-dis[i][1]];
tail++;
}
x1-=dis[i][0], y1-=dis[i][1];
}
if(res[_end.x+1][_end.y+1]!=-1)
break;
head++;
}
}
int main()
{
/*freopen( "test.in " , " r " ,stdin);
freopen( "test.out " , " w " ,stdout);*/
int Boardnum=1;
while(scanf("%d%d",&w,&h)!=-1&&w||h)
{
printf("Board #%d:\n",Boardnum++);
memset(map,'X',sizeof(map));
int i,j;
for(i=1;i<=w+2;i++)
map[1][i]=map[h+2][i]=' ';
for(i=1;i<=h+2;i++)
map[i][1]=map[i][w+2]=' ';
for(i=2;i<h+2;i++)
{
getchar();
for(j=2;j<w+2;j++)
map[i][j]=getchar();
}
int cnt=1;
while(scanf("%d%d%d%d",&start.y,&start.x,&_end.y,&_end.x)&&start.x)
{
num=100000;
memset(res,-1,sizeof(res));
res[start.x+1][start.y+1]=0;
map[_end.x+1][_end.y+1]=' ';
bfs();
for(i=0;i<h+4;i++)
{
for(j=0;j<w+4;j++)
printf("%3d",res[i][j]);
puts("");
}
if(res[_end.x+1][_end.y+1]==-1)
printf("Pair %d: impossible.\n",cnt++);
else
{
finNum(_end.x+1,_end.y+1,0,4,4);
printf("Pair %d: %d segments.\n",cnt++,num);
}
map[_end.x+1][_end.y+1]='X';
}
printf("\n");
}
/*fclose(stdin);
fclose(stdout);*/
return 0;
}
输入
39 25
XXX XX X X XX X X X XX XXXX X X
X XXXX XXXXXX XX XXXXX XX X XXX
X X X X XX XX XX X XXXXXXX X XXX
XXX XX XXXXXX XXX XX XXXX X XXXX
XX X XX X XX XXX X XX X X XX
XX X X X X XX XX X XXXX XX
X X XX XX X XXX XXXX X X X XX
X X X X XX XX XX X XXXX X X X
XX X X XX XX XXX X XXX XXX X
X XXX X X XX X X XX X XX X
X X X X XXX XX XX X X X
X X X XX XXX X XX XXX X XX X X
XX X XXXXXX X XX X XXXXX XX
X X X X X XX X X X XX XXX XX X
XX XXXX X XX XX X XX X XXXXX XX
X XX X X X XX XXX XX XX X
X X X XXX XXX X X X XX XXXX
XXX XX X XXXXXXXX XXX
XX XX X X XX X XXXXXXX X XX X X
XXXX X X X X XXX XX X XXX X
X XX XXX X X XXXX XXXX XX X XXXXX
XX XXX X X X X X X XX X X XXX XX
X X X X X XX X XX X X X
XXX XXXXXXXX X XXXX XXX XX X XXXX
XXX X X X X XX X XX XXXX XX X
25 6 24 19
34 6 13 24
31 17 18 16
23 17 13 22
0 0 0 0
5 65
XX
X
X
XXX
X X
X
XXX
X XX
X XXX
XXXX
X X
X XX
XX
XXX
XXX
XXX
X
X
X
X XXX
X
X
XXX X
X
X XX
X
X
X XXX
X
XXXXX
X X
X X
XXX
X
X XXX
XXXXX
XX X
X XX
XX X
X
X X
X X
X X
X
X
XXXX
XX
X X
X X
XX X
XXXX
X
X
XXXXX
XXXX
X
X X
X
X
X
XX
XX
1 9 4 3
5 6 1 23
3 50 2 5
4 46 1 3
0 0 0 0
72 12
X XX X XXXXX X X X X X XXX XXX X X XXX XXXXXX XX X X
XXXXX X X X XXX X X X XX X XX X X XXX XXX X
X X XXX XX X XXX XX XX X X X XX X XXX X X X XXXX
XXX X XXX X X X XXX X X X XX XX XXX X XXX X XXX XXX XX X XX X
X X XXXX X XX XXXX X X XX XX XX XX X X XXXXXX XX XXXX
X X X XX X XXX X X XX X X X XX X XX X X XXX XX XXX XX
X X X XXXX XXX XXXXX X X XX XX XX X XX X XX XXXX XX X
X X XX XX XXX X X XX X X XX XX XXX XXX XX XXXXXXX X X
XXXXX X X XX X X X XXX XX X X XXXX X X X XXX
X X X XXX X XXX X XX XXXX XXXXX XX XXXXXXX X X X
X X XX XXX XX XX XX X X X XXX X X X X X X X X X
X X XXX X XXX X X X X XX XX XXXXX XX X X X X X XXXXX
46 8 47 5
20 4 1 5
25 6 5 5
0 0 0 0
15 19
X X XX XXX
X XX XXXX X X
XX XXXXX X XX
XXX XXX X X X
X X X XX X
X XXX XX X X
XXX XXX X XX
XX X X XX
X XX XXX XXXXX
X X XX X X XX
XX XX X X X
XXXXXX XXX XX
X XXX X XX X
XX XXX X X
X X XX X X
X XXXXX XXX XXX
XX XXXXXX XXXX
XXX X X XX
XX XX XX XX
12 6 2 6
15 12 3 16
5 5 11 18
6 13 10 17
15 2 1 9
3 12 15 12
13 13 13 13
7 8 11 12
0 0 0 0
27 47
XXX X XXX XX XX XX XXX
XX XX X XX XX X XXX
XXXXXX XX XXX X XXX
X X XXX XXX XXX X XX X XX
X XX X X XXX X
X X X XXX XXX X
XXX X X X XX XX X X X
X XXXX X X XX XXX
X XXX X X XXX XXX X
X XX XXXX XX X X X XXX
XXX XX XXX XXXX X XX
XXXXXX X XXX
XXX X XXX X X XX
XXX XX XX X XX X XXXX X
XXX X X XXXXXXX X X X
X XX XX XXX X XX
X XX XXX XXX X X
X XXXXXX XX XXXX XX X XXX
X X X X X XXX X X X
XXX X XX XXX X XXX
XXX X X XXXX XX XX X X
X X X X X XXX X
XXXXX XXXX XX XXX XX
X X X XXXXXXXX XXX XX X
X X X XXXX X X XXXX X X
X X XX X XX XX X X XX
XX XX X XX XXXXX XXX XXX
XX XX XXXX X XX XXX
X XXXX XX XX XX X XXX
X X XXXXXX X X X X X
XXX X X XXX X XX XX
X X X XX XX XX XXXX
X X X X XX XX X
XX X XXX X XXXXXXXX X XX
XXX X X X XX X X
XX XX XX XX XX X X X
X XX X XXX X XXX
X X XX XX X XX X XX
XX XX XX X XXXX
X X X XXX XX XX X XX
X X XXXXX XXXX X X
X XXX X X XXX XX X XX
XXXXXXX XX XX XXX XX
X XX XXX X X X
X X XXXX X X X X X X
XX X X X X X XXXX
X XXXX XX XXXXXXXX XX
25 40 3 32
23 13 19 22
24 18 27 14
0 0 0 0
39 56
X X XXXXXXX X XXXX XX XXXX XX XX XX
X X X X X X X X XX X XX
XX XXX X XX XXX X X XX XX XX
XX X XX X X XX X XXX X XX
X X X XX XX X X X X X X XXXX
XXX X X X X XXX XX X X XXXX
XX X X X XXX XXXXXXX XX X X
XX X XX X X XXXX XX X XXX X
XXX XXX X XX XX XXXX XXX X XXXX XX X
X X XXXXX X XXX X XX XXXX
XX X XXXXXXXX X XXX X XXX X XXXX X
X XXX XXX XXXX X XXX XXXXXXX X X X
X XX XXXX XX XX X XX X X XXX
XXXX XXX X X XX X X XXXXX X
XXXX XX X X X X X XX XXX
X XX XX XX XX XX XXX X XX X
X XX XX XX XXX XX XXX X X X
XX X XX X XX X XX X XXXX X X
XXX X X X X XX XX XXX X X XX X X
XXXX X XX X XX XXX XXXXXXXXX X X
XXXXX XXXXX XX XXXXXXX X X X XXX
XXX XX X X XX X X XX X X
X XXXX X XXXXXX XXXXX XX X X XX
X XX XXXX XXXX XXXXX XX XX XXXXX XX
XXXXXX X XXX XX X XXX X XXX
XXXXX X X XXXX X X XXXX X X X
XX XX XXXXXXX XXXX X X X X X
X X XXXXX XX XX XXXXX XXX X X X
XX XXX XXX X X X X XX
X X XX XX X X XX XX X X
X X X X X X XX X X XX XXX X XX XX
XX XX XXX X X X XX X XX XX
X X XX XX XXXXX X X XX XXX XXX X
XXX XX XX X X XX XXX X X XX XX X X
XXX XX XX X XX X X X XXX
XXXX XXXX X XX X X X X X
X XX X X XX XX X XXX X
X XX X X XX XX X X X
X XXXXXXXX XX XX XX X X XXX X
XX X XX X X XXXXX X X X XXX X X
XXX X X XXX XXX X X X XX X
XX X X X X XXX XXX X XXX
X X XXXX XX X XXXX X XXX XX
X X XXXXXX XXXX X X X XXX XXXXX
X XXX XXXX XX X X XXXX XXX X X
XX XXX XX X XX XXX XX XXXX X
XX X X X XXXXX XX X X X XXXXX
X X XXX XX XXX XX X X XX X
X X XX XXX X XXX X X XXX X
X X X XX X X XXXX X X X XX XX
X X XXX XX XXXXX XX XXX XX X
X X X X X XXX XX XXXXXXXX XX X
X XX XX XX XX X XXX X X X
XX X XXXX XXX X X X XXX X XXXX
X XX XXXX XXXXX X XX XX X
X XX X XXXXXXX X X XX XXXX X X
27 13 11 3
31 7 33 7
22 31 27 32
0 0 0 0
51 31
XX XXX XX X X X XX XXX X X XX X X X X X X XX
XXXX X X X XX X XX X X XXX X X XX X X X
XX XX XX XXXXX XX X XXXXX X X X X X XXXXX X
XX XX XXXXX XX X XXX XXX XX X XX XX X
XXXX X X X X XX X X X XX XX XX XXX
XX X X X X XXX XXX X X X X XX XXXX X
X X XXX XXXX X XX XX X XX XXX X XXX XXX X
XX XX X XXX XXXXX XX X XXXX XX XXXX X XXX
X XXX XXXXX X XXXX XXXXXX X X X XXX X XX X
X XXX X XXX X XX X XXX X X XXX X X
X XX XX XX X XX XX XX XX XXXXX XXXXX
X XX XXXX X X XXX XX XX X X XXX XX X X X
XX X X XX X XXX X X XX X XXXX XX X
XX XX XX X X X X XX X XXX XXXX X X X XXX
X XX X XX X XXX XXXXX X XXX XXX X
XXX X X X X XX XXX X X X XX
XX X X XX X XXXX XX X X XX XX X XXX XX
X X XXX X XXX XXXX X XX XX X XXXX XX
X X X XXX X X X XX XX X XX X X X X XX X XX
XX X XX XX XX X X X XXX X XX XXX X
XXXX XXXX X XX XXX X X X XXXXX X XX
X X X XX X XX XXX X XXXX X X XX X X X
X X X XX X X XXX XX XX X X X X X X X XXX XX
X X XXX XXXXXXX XXX XX XXX XXXXXXXX X X
XX XXX X X XXX XX X X X XXXXX X XX X
X X X X X X X XXX XXXXX XX X XXX XX
X X XX X XX XXX XXX XXX X X XXXXXX X X
XXXXXX XX XX XX X X XX XX XXXX XXX X X XXXXXX
X X XX X XX XX X XX XX XXXXXX
XX X XXX X XXX X XX X X XXX X XX XX
XX XX XXXX X X XXXXX XX X X XXXX XX XXX XX
33 15 14 7
12 14 33 17
25 3 47 13
0 0 0 0
58 29
X X X XX XXX XX X XXXX XX XXXXX XX X XX X X X X
XXX XXXX X X X X X X XXX X XX X XX
X X X X XX X X XX X X XXX X XX XXX X X X X XXX
X XXX XX XX XX XXX X X XXX XXX X XX XX
X X XXX XX XX XXX XXX X X XX XX X X XX XXXX
X X X XXXXX XX XXX XXXXXX X XX XXXXX XX X XXX X X
XX X XXX X X XX XXX X X X XX X X XXXXX X X XXXXX
X XXXX X X X XX XXX XX XX XXXXXXX XXX X XXXXXXX XX
XXX X X X X XXXX XXX XXXX XXXXXXX X X X XX XXX
XXXX X XX X X X X X XXXXX X X XX X X XX X
X XX X XXX X X X XX X X XX XXX X X X XX
X XXXX XX XX XXXX XXX X XXXX XX XX XX X
X XXXX X X XXXXX XXX X X X X X X XXX
X XX X X XX X XX XX XXXXX XX XX X XXX X
X XXXXXX XXXX XXXXX X X XX X X X X X XXX
X XXXX X XXX XX XXX X X XXX XX X X XXXX XXX
X X XXXX X X XXXXXXXXX X X X XX X XX X
X X XX X X X XX XXXXXX XXXX XXX X XXXXXXX X X XX XX
XX X X XX X X XXXX XXX X X X X XX X X
XXXX XX XXX XXXXX XXX XX X X XX XX X X X XX
X X XX XX XXXXX X XXXXX X XX X XXX XX X XX X XX
XXXXXX X XXXX X X XXXXXXXX XX XXXX X XXX XXX X X
XX X X X XXX X XX X X XX XX XXXX X X
X X X X X X XXXXXXXXXXXX X XXXX X X X X X XXX
X XXXXXXX X XXXX X X XX X X X XX XXX XX XX X X
XXXXX XX X X X XXX XX X X XXXXX XXX X X XXX
X XXX XXX X X XXX X X X X XX XX XXX XX
X X XX XX X XX XXX X XX X XXX XXXXXX XX X X X
X X XXXX XXXXX X X XXX X XX X X XXX X XX X X
19 1 3 25
52 7 1 28
47 22 12 16
29 24 25 25
0 0 0 0
45 73
XX X XX XXXX XX XX X X XXX X XX XXX
XX X X X XXX X XXXX XX XXXXXX XX XXXX
XXXXX X XX XXXXX XXXX XXX X XX XX
X X X XX X X XX XXX X X X X X
X X X X XX XXXX XXX X X XX XX XX XX
X XXX X XXXXX X XXX X X X X X X XXX XX X
XXX XX X X X X X XX X XXX X XX X
X X X XX XXX XX X XXX X XXX X XXX X
XXXX X X XXXX X X XXX XXX XX X X
XXX XXXXX X XXXX X XXX X XX XX X
XX XXXXXXX XX X X XXX XX XX XX XX X
X X X XX X X X X XX X XX X X
X X XX X XX X X X X XX X X XXX XX X
X XXX X XXX XX X XXXXXXX X XX XX X XXX
XXXX X X X XX XXX XXX XXX XX XX X XXX X
XXX XX XXXX X X X XX X X X XXX X
X X X X XXXXX XX X X XXXX X X X
X XXX XX XX XX XXXX X X XX XXX
X X X XX XX X X XXX X X XX X XX X
XXXXXX XXXX XX XXX X XXXXX XX XXXXX
XX X X XXXX X X XXX X X X X XX
X XXX XX X XXX XX XX X X XX X X XXX X
XXXXXX X X XXXXX XX XX XX X XXXX X X
XXXX X X X X X XXXX XX XX X X
X X X XX X XX X X XXX X X XXX XX XXXXX
X X XXXXX XX X X XXXX X X X X
X XXXXXX XXX XXXXXXX X XXX X X X XXX
XXXX XX X XX XX XX XXX X XX XXX XX XXX
X X XXXX X XXX X XXX X XX X XXX X
XXX XX XXXXX XXX XX X X XXXX X XX
XX X XXXXXXX XX XX XXXXXX X X XXXX X
XXXX XX X XX X XXX XXX X XX XXX
XXX X X XXX XX XXX XXXXX XX X
X XXX X XXX XXXX XXXX XXX X XXX
X XXX XXX X XXXX X X XXXX X X XX XXX
X XX X X XXX XXXXX X XXXX XXXX XXX
X XXX XXX X X X X XXXXXX X X X XX
X XX XX XX XXX XXX X X X XXXX XX
XX XX X XXX XXXX XXXXX X XX X XXXXX
X XXXXX XX X XX XXXXXX XX X XX X X X
XX XXX XX XX X X XX X X X
X XXX XX XX X XXXX XX XXXX XX
X X XX XX X XXX XX XX XXX X X
XXX X X X X XX XXXX XX X X
XXXXXX X X XX X X XX X XXX X X X X
X XX X X XXX XX X XXX X X
X X X X X X XXXX XX XX X XX X XX XXX
X X XX XX X XX X X XXXXX XXX X X
XXXXXX XXX XX X X XXXXX X X XXX XXX
X X X XXX XX X X XXX X XXXXXX X XXXXX X
X X XXXX XXX X XXXXX XX X X XX XX XXXXX
X XX XX XX X XX X X X XXXXXXXXXX X X
XX X X X X X X XXXX X XX X X X X XX
XXXX XXXXX XXXXXXX X XX X XX X XXX
XX XXXX X XX XX XXX X XX XXXX
XX XXXX XX XXX XXXXXX X XXXXX X XX
X X X XX XXXX X X X XXX XX XXXXX
XX XX X XXX X XX X XXXXX XXXX XX
X X X XX XX X XXX XX X X XX X X
XXXXX XXX XXXX XXXX X XXXX XX XX X XX
XXX XXXXXXX XX X X XX X XXX X XX XXX X
XXXX X X XX X X X XXX X X
X X XX XXXXXXX XX XX XX X XX XXXX X
XX XXXXX X XXX X XX X X X XX X XX
X XX XX XX X X X XX X X XXXX
XXXX XX XXX XXXXXXX X XXX XX X XXXXX XX
XXX X XXX X X X X X XX X XXX X X X
X X X X X X XX XX XXX XXX XXX XX
XXXX XXXXX X XXXXX XXX X X X XXXX XXX
X X XX XXX X X X XXX XX X X X
X XX XXXXX XXX X XXXXXXX XXX X XXXXXX X
X X X XX XXX XXXX XXX X X XX XX X
XX X X XX XX X XX XX X X XX X X
39 12 13 16
0 0 0 0
9 75
XXX XXX
X X X X
X X
X X X
X XXX X
XX
X X XX X
XXXXX
X XX
XXXXX X
X X XX X
XX XXXX
X XXX X
XX X X
XXX X
XX X XX
XX XX
XXXXX
XX X X
XXX X X
X XXXX
XX X
X XXXX
X X XX
X XXX
X X XX
XXXXXX X
XX X
XXXXXXXXX
X XX X
XX X X X
X XX XX
XX XX
X X
XX XXXXX
X XXX
XX XX
X XXX XX
XXX X X
XX X X
XXX
X XXXXXXX
XX X X
X XXX X
X XX
XX XX
X XX XXX
XXXXX
XX
XXXX X
XXX XX X
X X X
X XX
XX XX
XX XXXX
XX XXXXX
XX X X
XX
XXXXXXXXX
XX X X
X XX X
X XXXXX
XXX X X
X XXXX
X X XX
XXXX XXX
X X XX
X X
X XX XX
XX X
XX XX
X X X X
XX X
XXXX X
XX X XX
3 62 8 26
0 0 0 0
21 57
XX X XX XX X XX
XXXXX XXX XX X
X XXX XX XX X X X
X XX X X XXX XX
XXX XXXX X X XXX X
XXXX XXXXXX XX XX
X X XXX X X X
X X XX XX
X XX XX X XX
X XXX X XX X
XXXXX XX X XXX X
X X XX X X
XXXX XX X XXX X
XX X XXXX XXX X XX
XXX X XXX XXX X X
XXXX X XXX
X X X X XX
XX X X XXX X XXX
XXXX X XXXXX XX X
XX X X X X X X
XX XX X X XX XXXXX
X XX X X X XX
XXX X X X X
X XXXX XXX X XXX
XX X X XX XXX X
XXXXXX XX X XX
X X XXX XXX X
X XXX X XXXX
X X XXXXXXX XXX XX
XXX X X XXXXXXXXX
XX X X X X X X
XXX X X XX XX X
XXX XXXX X X
XX X XX X XXXX
X X X XXXX X X
X XX X X X
XX X XX X XX X X X
XX X XX XXX X
XXXX X XXX X X
X XX XX X X XXX
XXX XX XXX X XXX
X XXXX X X X X
X X XXXX X XX XX
XX XXXXXX X X XX
X X XX X X X
XX XX XXXXX XXXXX
XXX XX X X XXXX
XXXX XXX XX XX
X XX XX X XX X X
XX XXX X X XXXXXX
X XXX XX X X XX
XXX XX XXXXX X X
XX X XXXX X XX X
XXXX X X XX XX
X XX X XXXXXX X X X
XX X X X X XX X XX
X XXXX XX X XXX X
5 16 3 35
3 57 1 18
20 18 14 44
0 0 0 0
17 44
XXX X XX X
XXX XX X X X
X XXXX X XXX XX
X XX XXXX X
X XXX XXX XX
X XXX X
X X X XXX
XXX X XXXX X
XXX X X XX
XXX XX X X X
X XXX XX X
XXXXX XX XX
X XXXX
XX XXXX XXXX
XX XX X X X
XX XXX X X
XX X X X
X XX X XX X X
XXX X XXXXXX X
XX X XXX X
X X XXXX XXXX
X XXXXXXXX XX X
X XX X XX X
XXXXX X X X
X X X X XXXX
XXX X X XX X X
X XXXX X
XX XXX X
XX XXXXXX XXX
XXXX X X X XXXX
X X X XX XXX
XXX X XXX
XXX XXXXX XX X
X XXX X XXXX
X XXX XXXX
XX X X X X
XX XXXX XXX
X XXXX X XXXXX
X X X XX XX
X X X X X XXX
XX X X XX
XXX XX XXXX
XX X XX XXX X
XX XX XXX X
5 20 2 41
13 10 4 35
2 25 4 13
0 0 0 0
40 62
X XXX XXXXXXXXX XXX XX X XXX X XX
X X XX XX XXX XXXX XXXX X X X
X X X X X X X XX XXXX XX X XXX
X XXXX XX X X XX XX X X XXX X
XXXX XX XXXX XXXXXX XXX X X
XXXXX X X X X XX XXX X X XX
XXX XXX X XXXX X X X X X XX
X X XX X XX XXX X X X X XX X
X X X X X X XX XX X X XXX XX
X X X XXXXX XX X XXXX X X X XX XX
XX X XXXXX X X X XX XXX X X
X X X XXX XX XX X XX X X
XX XX X XXX X XX XXXX X X X
XXX X X X X X X XX X XX XX X X XX
X XX X XXX XX XX XX X XX XX
X XX XXX X X X XXX X X X XXXX X
X X X XXX X X X X X X X
XXX X X XXXXX XX XX X XXX XX X XXXX
X XX XX X XXXX X XX X X XX X
X X X XXX XX XX XXXXX XX XX X
XX XXXX X XXX XX X XX XX X X XXX
XXX XXXX XX XXXXX X X X X XX
X XXXX X XX XXX XXX X X X
X XXX XXX XX X X XX X X X
XXXX XXX X XXXX XXXXXXX XXXXXX XX
X XXXX X X XXX XX XX X X X X X
XX X X X X XXX XXXXXXX X XX
X X X X X XX X XXXX X X XXXX
XXX X X XX XXX X X X X X XXX X XX
XXXXX XX XXXX XX X X XX XXX X
XX X X XX XX XX X XXXX X XXXXX X
XX X X XX X X X XXX XXX
X X X X XX X XX X X X XXX XX X XX X X
XXXXX X XXX XXXX X XXXX XX X XX X
XX XXX XX XX XX X XXX XXX
XX XX X XXX X X XX XXX XXXXX X XXXXXX
XX X X XX X X XX X X XXXX X X
X X X XX X X XXX X XX XXX XXX
XXXX X X XX X X XX XX X XXX X
X X X X X X X XX X X XXXX XXX X X
XXXXX XXXXX X X X XX X X X XX XXX
XXX XX X XX X X X X XX
X XX XX X XX X XX XXXXXX X X
XXX X X XX XX XX X XXX XX XXX
X XX X XX X X X XXX X X XX X XX
X X XX XXX XX XX XXX
XX X XX X XX XXXX XXX XX X
XXXX XX X X X XX X XX XX X X XX X
X XXX XX X XXX X X X XX XXX
X XXX X XX XXXX X X X X XX X XX
X X X XXXXXXX XX X XX XXX X XX
X XXX XXX XXXXXXX XX XXXXXX X X X
X XXXX X X X X X XX X X XXXX
X X X XXX X XXXXXXXXX X X XX X
X X XX XXX XX XXX X X X X
X X X XXX X XX X X X X XX XX
X X X X XX X XXXX XX X X X
X XX X XX XXX X X XXXX X X XXX
X X X XX X XXX X XXXXX XX
XX XX XX X XX XXXXXX X
X X X XXX XXX X X X X XXXXXX XX
XXX X XX XX X X X XX X XX
15 30 24 46
19 19 13 11
29 35 5 13
0 0 0 0
51 45
X XX X XX X X X XXXXX XX X XX X
X XX XX XX X XXXX X X X X XXXXXX XX X
X X X XXX XXXX X XX XXX XX XX X XXXXX X X
X X XXX X XXXXXXX X X X XX X XXX
XXX X X X XX XX XXX X XX X X XX XXXX
XX XXXX XX XXX XX XXXXXX X XX XXXX XX X XX
X X X X X XXX XXX X X XXX X XXX XXXXX X
XXX X X XXX X X X X XXXX X XXXXX XXX X XXX
X XXX XXXXX X XX X XXXX X X X XX X
X XX X XXX XXXX X X XXX X XX X X
X X X X XXX XX X X X X X XXXXXX
X X X XX XXXXX X XXX XXX XXXXX X XXX
X X XX X X XX X XXXXX XXX X XXXX X XX X
XXXXX X X XX X XX X X XX XXX X X X X XX X X
XX XX X X XXX XXX X XX X X X X X X
X X XXXX X X XXX XXXX XXX X XX XX
XXX XX X XXX X X XX XXX XXX X X X X XX XX
X X X XXXX X X XX XXX XX X XXX X
X X X XX XXX X XXX XXX X XXX XXX X X X
X XXX X X X XXXX XXXX X XX XX X XX
X XXX X XX X X X XX X X X XX XX
XXXX XX X X XXXXX X XXX X X
XX XX XX XX X XXXX X X X X XX X XXXX
XX X XX XX XX X XX X XXXX X X X X X X
XX X X X XX XX X X XXXX XXX XXX
X X XX XX X XXXX X X XXX XXXXX
X XXXXX XXX XX XXX X XXX X X X XX XX
X XXX XXX X X XXX X XXXXXXXXXX XX X X XX
X XXX X X XXXXX X XX X X X X XXXXX XXXXX
XXXX XX X X XXXXX XX XX X XX XXXXXX
XXX X XXX XX X XXXXXX X X XX X XXX
X X X XXX X XX X X XX XXX X X X X XXX XX
XX X X X XXXX X XX X X XX XXX X
X XX X XX X X XXXX XX XX XX X X XX X XX
XX XX XXX XXXXXX X XX XXX X XX XX XXX X
XXXXX X XX XXXXX XX XX X X X X X X XX X XX
X XX XXXX XX X X XX XXX XX XX XX X
XX X X XX X XX X X X XX X X X X XX
X XXX X XX X XX X XX X X X XXXX X
X X XX X X XXXXX X X XXXXXX X XX XXXX XX X
XXXXX XXXXXX X X XXX X X X XX XXX XXXX
XXXXXX X XX XX XX X X X XX X X X XX X X X
X XXX XXX XXX X X X X X X X X XXX X X XXX
X X X XXX X X XX XX X X XXXXX XXX X XXXX X X
X XX XX XX X X XXXX XXXXX XXXX X X X
24 37 35 9
22 6 20 6
0 0 0 0
61 37
X X XX XXXXX XX X XXX X XXXXXX X XXX XXXXXXXX X
XX X X XX XXXX XXXX XXXXXXX XXXX XXX X X XXX XX
XXXX X X XX X X X XXXXX XX X XX XX XXX X XXXXXX
X XXXX XXXXX XXXXXX XXX X XXXXXX XX XX XX X X XXX X
XXX X XX XXX XXX X XX X X XXX XXXXXXXXX X
XXX XXXX X XXX XXXX XX X X XXXXXXXX XX X XX XXX X
XXX X XXXXX X XXXX X XXXX X XXXX X X XXXX X X
X X X X XXXXXX XX XXXX XX X X X XX XX XX XXXXXX
X X X XXXXX XX X XX XXXX X X X XX X XX X
XX XXX XXXXXXX X XXXX X XX XXX XX XXX XXX X XX XX
XX X X X X X XX X XXXX X X X XXX X XXXXX X XX XXX X X
X XXX X X XX X XX X X X X XXXXXXXXX XXX XXXX
XX XXX X X X X X X XX XX XX XXXX XX XX XXX X XXX
X XXX XXX X XX X XXXXXX XX X X X XX XXX X X X X
X X XX XX X X X X X XX XX XX X XX X XXX X X X XX X
X XX XX X XX XXX XX X X XX X XX XXX XXX X X
XXX X X X X XX X X X X XX X X XXX XXXX XX
XX XXXX XXXX XXX XXX X XXXXXX X XX XX XXXX XXX X X
XX XX X XXX XX X X XX X X X X XXX XX X X XX
X XXX X XXX XXX XXX X X X X X XX X X X X XX X X
X XXX XXX X X XX X X XX XXXX X X X X X X X
XXX X XXX XX XXX XXXX X X XX X X X X X X XXXX XXX XXX
X XX XXXXXXXXX X XX XXX X XXX XXXXXX XXX XXX X XX
X X XX X X X XX X XXXX X X X X XXX XX X XX X
XXXXX X X XX XXX XXX XXXX X X XX XX XX XX X
X XXX XXX X X X X XXX XXX X XX XX X XXXX X X
X X XXX XX X XX XXX X XXXX X XXXXXXX XX XXX
XXXX X X X XX XX X XX XX X X XX X X XXX XXXXX X X
X XXXX X XXX X X XX XX X X XXX X XXX X XX X XX
XX X XXXXXX X XX XX X X X X XX X X XX XX XX
X X X X X X XX XX X XXX XX X X XX XXXX XX X X
XX X X XX X XX XX XX XX XX X XX XXXXX X X XX X XX X
X XXXXXXXXXXXX XXXXX X XXX XX X X X XX XX X X X XX X XX
X X XXXXXX XXX XXXXX XXXX XX XX XXX X X XXXX X
XX XXXXX X X X X X X XX XXXXXXX X XXXXXX XXX X
XXXXX XX XXXXX X XX XXXX XX XX X XXX XXXXX XXXXXX X
XXXXX X X X X XX XXX XXX X XX X X X X X X X XXXX
19 2 5 9
19 28 11 32
57 12 11 17
10 20 39 6
53 36 57 23
32 22 40 35
0 0 0 0
54 73
XX XX X X X X X XXXXX XX XX XX X X XX XX
X X XXXX X XXXXX X XXX XX X X XXXX
X X XXX XXXX XXXX XXX XX X XX XX XXXXX
XX XXXX XXX XXX X XXX XX XXXX X X X X XX
X XX X XXXXX X XX X X X X XX X X X
X XX X X X X X X XXX X XX XXX X XXXX XXX XXX
XXXXXX X X X XX X X X X X X X XX XX X XXX XXX
XX XXXXXXX XXX X XXX X X X XXXXX X X XX X
XXXXX XXXXXXX XX XX X X X XXXX X X X XX
XX XX XXXX XXXX XXXX X XX XXXX XXX XX X
X XX XX X X XXXX XX XX X X X X XX X XXXX X X
X XXX X XX X XX X XX X X X X XX X XXX
XXX XX X XX X XX XX XX X XXXXX XXX XX XX X X XX
X X XXXX XX X XX X XXX X XXXXXX XXXX XX X X
X XXX XXX XX X X X X X XX XXX X X XXX X
XX XX XXXX X X XX X XXX XXXX XX XX XX X XXXX
XXX X XXX XXXXXX XX X X X X XX XX XX X X X
X X X XX XXXXXXXXXX XX XX XX XX XXX
X XXXX XX XX XXXXX XX XX XXX XXX XXXX X
XX XXX X XX XX X X XXXXX XXXX X XX X XXX
XXXX X X XXX X X XXX XX X XX XX X X
X X XXX X XX XXX XX X XX XX X XX XXX XXXX XX X
X XX XXX XXXX X XX XX XXX X XX XX X
XXXX XXX XXXX X X X X X X XX X XX XX X
XX XX X XX XXXX X X X X XX X XXX
X X X XX X X XXX X XXX X X XX XXXX X
X X X X X X X XXXXX X XX X X X X X
X X X XX XXX X X X XX X X X X X X X XXX
X X XX X X X XX XX XX XXXXX X XX X X
X X X XX X XX XXXX XX X X X XX XX
XX XXXX XXXXXXX X X XXX X XX XXXX XX XXX
X XX X X XX XXX X X XXX XXX XXXXXXXXXX X X
X XXX X XXXX XX XXX X X X X X X XX X XX XXX
X X XX XX X X X X X X X XX X X X
XXXX X X XXX XX XXXX XX XX X XX XX XX X
XX X X XX X X X