USACO section 2.4 Overfencing(dfs+bfs)

USACO-Section 4.2 The Perfect Stall (二分图最大匹配[匈牙利算法[DFS]||网络流[Ford-Fulkerson]]) 解法一:匈牙利算法[DFS] O(nm) 匈牙利算法专门用于部图的匹配,所以速度极快,全部test都是0.00s 大致思路:枚举n头奶牛为起点,若找到一条增广路径(终点为未匹配,且奇数边均不在原匹配中,偶数边均在原匹配中),则答案+1 DFS实现找增广路径:dfs参数是i表示奶牛,枚举奶牛喜欢的牛棚,若牛棚不在当前增广路径中,则将其“纳入”增广路径(不一定出现在增广路径中,失败时不必再除去,因为当前状况下就失败,后面的状况不会更好,算作剪枝),若枚举的牛棚未被占据 或 以占据该牛棚的牛为起点时存在一条增广 阅读详情
Overfencing
Kolstad and Schrijvers

Farmer John went crazy and created a huge maze of fences out in a field. Happily, he left out two fence segments on the edges, and thus created two "exits" for the maze. Even more happily, the maze he created by this overfencing experience is a `perfect' maze: you can find a way out of the maze from any point inside it.

Given W (1 <= W <= 38), the width of the maze; H (1 <= H <= 100), the height of the maze; 2*H+1 lines with width 2*W+1 characters that represent the maze in a format like that shown later - then calculate the number of steps required to exit the maze from the `worst' point in the maze (the point that is `farther' from either exit even when walking optimally to the closest exit). Of course, cows walk only parallel or perpendicular to the x-y axes; they do not walk on a diagonal. Each move to a new square counts as a single unit of distance (including the move "out" of the maze.

Here's what one particular W=5, H=3 maze looks like:

+-+-+-+-+-+
|         |
+-+ +-+ + +
|     | | |
+ +-+-+ + +
| |     |  
+-+ +-+-+-+

Fenceposts appear only in odd numbered rows and and odd numbered columns (as in the example). The format should be obvious and self explanatory. Each maze has exactly two blank walls on the outside for exiting.

PROGRAM NAME: maze1

INPUT FORMAT

 

Line 1:W and H, space separated
Lines 2 through 2*H+2:2*W+1 characters that represent the maze

SAMPLE INPUT (file maze1.in)

5 3
+-+-+-+-+-+
|         |
+-+ +-+ + +
|     | | |
+ +-+-+ + +
| |     |  
+-+ +-+-+-+

OUTPUT FORMAT

A single integer on a single output line. The integer specifies the minimal number of steps that guarantee a cow can exit the maze from any possible point inside the maze.

SAMPLE OUTPUT (file maze1.out)

9

The lower left-hand corner is *nine* steps from the closest exit.

思路:找到出口开始搜索,广搜找当前点到出口的最短路更新答案,深搜找到下一个要更新的点。

  因为是从出口处开始深搜广搜结合搜索,因此广搜的花费很小,最多只需要搜前后左右4个点即可得到答案。

具体看代码:

这题很苦逼,我提交了8次才过,第一次是BFS直接广搜所以点,毫无疑问爆了。

就改成深广结合,结果就在原先基础上改,犯了低级错误,改了许多版本,最后才明白走入死胡同。

最后才把深广很好的结合,AC了,速度也很快11MS,内存差不多就是纯深搜的内存。还算是不错的。

八次提交代码一起给了。

 

/*
 ID:nealgav1
 LANG:C++
 PROG:maze1
*/
#include<fstream>
#include<cstring>
using namespace std;
const int mm=444;
const int nn=123456;
const int oo=1e9;
const int kx[]={0,1,-1,0};
const int ky[]={1,0,0,-1};
int kans[mm][mm];
int ans;
ifstream cin("maze1.in");
ofstream cout("maze1.out");
class node
{ public:
  int x,y,step;
}f[nn];
char map[mm][mm];
int m,n;
void bfs(int x,int y)
{ bool flag=0;
  int rear=1,front=0;
  f[front].step=0;f[front].x=x;f[front].y=y;
  int nx,ny;
  while(front<rear)///bfs广搜找出当前点到出口的最短路
  {
    if(flag)break;
    for(int i=0;i<4;i++)
    {nx=f[front].x+kx[i];ny=f[front].y+ky[i];
     if(map[nx][ny]==' ')
     { nx=nx+kx[i];ny=ny+ky[i];
      if(nx<0||nx>=n||ny<0||ny>=m)
      { kans[x][y]=f[front].step+1;
        ///if(kans[x][y]>ans)ans=kans[x][y];
        flag=1;
      }
      else if(kans[nx][ny])
      { if((kans[x][y]==0)||(kans[x][y]>kans[nx][ny]+f[front].step+1))
          {

           kans[x][y]=kans[nx][ny]+f[front].step+1;
            //if(kans[x][y]!=0&&kans[x][y]+1<kans[nx][ny])
            //bfs[nx][ny];
            /*for(int ii=0;ii<4;ii++)
            { int nnx=x+kx[ii],nny=y+ky[ii];
             if(map[nnx][nny]==' ')
             {nnx=nnx+kx[ii];nny=nny+ky[ii];
             if((nnx>=0&&nnx<n&&nny>=0&&nny<m&&kans[x][y]+1<kans[nnx][nny])||(kans[nnx][nny]==0))
             bfs(nnx,nny);
             }
            }*/
          }
      // if(x==3&&y==1)cout<<"nx="<<nx<<"ny="<<ny<<kans[nx][ny]<<" "<<f[front].step<<endl;
      /// if(kans[x][y]>ans)ans=kans[x][y];
       flag=1;
      }
      else
      {
        f[rear].x=nx;f[rear].y=ny;f[rear].step=f[front].step+1;
        ++rear;
      }

     }
    }
    ++front;
           if(kans[x][y])///dfs深搜找下一个需要更新的点
           for(int ii=0;ii<4;ii++)
            { int nnx=x+kx[ii],nny=y+ky[ii];
             if(map[nnx][nny]==' ')
             {nnx=nnx+kx[ii];nny=nny+ky[ii];
             if((nnx>=0&&nnx<n&&nny>=0&&nny<m&&kans[x][y]+1<kans[nnx][nny])||(kans[nnx][nny]==0))
             bfs(nnx,nny);
             }
            }
  }

 /* for(int k=0;k<4;k++)
  {
    nx=x+kx[k];ny=y+ky[k];
    if(nx<0||nx>=n||ny<0||ny>=m)continue;
    if(map[nx][ny]==' ')
    { nx=nx+kx[k];ny=ny+ky[k];
      if(nx>=0&&nx<n&&ny>=0&&ny<m&&!vis[nx][ny])
      bfs(nx,ny);
    }
  }*/

}
int main()
{
  cin>>m>>n;
  memset(kans,0,sizeof(kans));
  m=2*m+1;n=2*n+1;
  cin.ignore(9999,'\n');
  for(int i=0;i<n;i++)
  cin.getline(map[i],9999,'\n');
  int num=0;
  for(int i=0;i<n;i++)///找出口,开始搜索,其实只要搜一个出口就行
  {                   ///但是搜两个也行,因为第一次已经完成所有工作,所以第二个出口花费最多为4
    if(map[i][0]==' ')
    {
      ///ans=0;
      bfs(i,1);
    }
    else if(map[i][m-1]==' ')
    {
      ///ans=0;
      bfs(i,m-2);
    }
  }
  for(int i=0;i<m;i++)
  {
     if(map[0][i]==' ')
    {
      ///ans=0;
      bfs(1,i);
    }
    else if(map[n-1][i]==' ')
    {
      ///ans=0;
      bfs(n-2,i);
    }
  }
  for(int i=1;i<n;i+=2)
  for(int j=1;j<m;j+=2)
  if(kans[i][j]>num)num=kans[i][j];
  cout<<num<<"\n";
  //cin>>m;
}

/**
#include<fstream>
#include<cstring>
using namespace std;
const int mm=444;
const int nn=123456;
const int oo=1e9;
const int kx[]={0,1,-1,0};
const int ky[]={1,0,0,-1};
int kans[mm][mm];
bool vis[mm][mm];
int ans;
ifstream cin("maze1.in");
ofstream cout("maze1.out");
class node
{
  public:
  int x,y,step;
}f[nn];
char map[mm][mm];
int m,n;
void bfs(int x,int y)
{ bool flag=0;
  vis[x][y]=1;
  int rear=1,front=0;
  f[front].step=0;f[front].x=x;f[front].y=y;
  int nx,ny;
  while(front<rear)
  { if(flag)break;
    for(int i=0;i<4;i++)
    {
      nx=f[front].x+kx[i];ny=f[front].y+ky[i];

     if(map[nx][ny]==' ')
     { //if(x==3&&y==1)
       //cout<<"nx="<<nx<<"ny"<<ny<<endl;
       nx=nx+kx[i];ny=ny+ky[i];
       //if(x==3&&y==1)
       //cout<<"nx="<<nx<<"ny"<<ny<<endl;
      if(nx<0||nx>=n||ny<0||ny>=m)
      { kans[x][y]=f[front].step+1;
        if(kans[x][y]>ans)ans=kans[x][y];
        flag=1;break;
      }
      else if(kans[nx][ny])
      { for(int z=0;z<4;z++)
        {
          nx=f[front].x+kx[z];
          ny=f[front].y+ky[z];
          //if(x==3&&y==3)
          //cout<<nx<<" "<<ny<<" "<<"kans[nx][ny]"<<kans[nx][ny]<<endl;
          if(map[nx][ny]==' ')
          { nx=nx+kx[z];ny=ny+ky[z];
           if(kans[nx][ny])
           {
           if((kans[x][y]==0)||(kans[x][y]>kans[nx][ny]+f[front].step+1))
           kans[x][y]=kans[nx][ny]+f[front].step+1;
            for(int ii=0;ii<4;ii++)
            { int nnx=x+kx[ii],nny=y+ky[ii];
             if(map[nnx][nny]==' ')
             {//f[rear].x=x+2*kx[ii];
             //f[rear].y=y+2*ky[ii];
             //f[rear].step=kans[x+2*kx[ii]][y+2*ky[ii]];rear++;
             nnx=nnx+kx[ii];nny=nny+ky[ii];
             if(nnx>=0&&nnx<n&&nny>=0&&nny<m&&kans[x][y]+1<kans[nnx][nny])
             bfs(nnx,nny);
             ;
             }
            }
           }
          }

        }
      // if(x==3&&y==1)cout<<"nx="<<nx<<"ny="<<ny<<kans[nx][ny]<<" "<<f[front].step<<endl;
       if(kans[x][y]>ans)ans=kans[x][y];
       flag=1;
      }
      else
      {
        f[rear].x=nx;f[rear].y=ny;f[rear].step=f[front].step+1;
        ++rear;
      }
     }
    }
    ++front;
  }
  for(int k=0;k<4;k++)
  {
    nx=x+kx[k];ny=y+ky[k];
    if(nx<0||nx>=n||ny<0||ny>=m)continue;
    if(map[nx][ny]==' ')
    { nx=nx+kx[k];ny=ny+ky[k];
      if(nx>=0&&nx<n&&ny>=0&&ny<m&&!vis[nx][ny])
      bfs(nx,ny);
    }
  }

}
int main()
{
  cin>>m>>n;
  memset(kans,0,sizeof(ans));
  m=2*m+1;n=2*n+1;
  cin.ignore(9999,'\n');
  for(int i=0;i<n;i++)
  cin.getline(map[i],9999,'\n');
  int num;
  //bool flag=0;
  for(int i=0;i<n;i++)
  {
    if(map[i][0]==' ')
    { memset(vis,0,sizeof(vis));
      ans=0;
      bfs(i,1);
    }
    else if(map[i][m-1]==' ')
    {memset(vis,0,sizeof(vis));
      ans=0;
      bfs(i,m-2);
    }
  }
  for(int i=0;i<m;i++)
  { //if(flag)break;
     if(map[0][i]==' ')
    { memset(vis,0,sizeof(vis));
      ans=0;
      bfs(1,i);
    }
    else if(map[n-1][i]==' ')
    {memset(vis,0,sizeof(vis));
      ans=0;
      bfs(n-2,i);
    }
  }
  cout<<ans<<"\n";
  //cin>>m;
}
*/
/**
#include<fstream>
#include<cstring>
using namespace std;
const int mm=444;
const int nn=123456;
const int oo=1e9;
const int kx[]={0,1,-1,0};
const int ky[]={1,0,0,-1};
int kans[mm][mm];
bool vis[mm][mm];
int ans;
ifstream cin("maze1.in");
ofstream cout("maze1.out");
class node
{
  public:
  int x,y,step;
}f[nn];
char map[mm][mm];
int m,n;
void bfs(int x,int y)
{ bool flag=0;
  vis[x][y]=1;
  int rear=1,front=0;
  f[front].step=0;f[front].x=x;f[front].y=y;
  int nx,ny;
  while(front<rear)
  { if(flag)break;
    for(int i=0;i<4;i++)
    {
      nx=f[front].x+kx[i];ny=f[front].y+ky[i];

     if(map[nx][ny]==' ')
     { //if(x==3&&y==1)
       //cout<<"nx="<<nx<<"ny"<<ny<<endl;
       nx=nx+kx[i];ny=ny+ky[i];
       //if(x==3&&y==1)
       //cout<<"nx="<<nx<<"ny"<<ny<<endl;
      if(nx<0||nx>=n||ny<0||ny>=m)
      { kans[x][y]=f[front].step+1;
        if(kans[x][y]>ans)ans=kans[x][y];
        flag=1;break;
      }
      else if(kans[nx][ny])
      { for(int z=0;z<4;z++)
        {
          nx=f[front].x+kx[z];
          ny=f[front].y+ky[z];
          //if(x==3&&y==3)
          //cout<<nx<<" "<<ny<<" "<<"kans[nx][ny]"<<kans[nx][ny]<<endl;
          if(map[nx][ny]==' ')
          { nx=nx+kx[z];ny=ny+ky[z];
           if(kans[nx][ny])
           {
           if((kans[x][y]==0)||(kans[x][y]>kans[nx][ny]+f[front].step+1))
           kans[x][y]=kans[nx][ny]+f[front].step+1;
            for(int ii=0;ii<4;ii++)
            if(kans[x][y]+1<kans[x+2*kx[ii]][y+2*ky[ii]])
            {//f[rear].x=x+2*kx[ii];
             //f[rear].y=y+2*ky[ii];
             //f[rear].step=kans[x+2*kx[ii]][y+2*ky[ii]];rear++;

             bfs(x+2*kx[ii],y+2*ky[ii]);
            }
           }
          }

        }
      // if(x==3&&y==1)cout<<"nx="<<nx<<"ny="<<ny<<kans[nx][ny]<<" "<<f[front].step<<endl;
       if(kans[x][y]>ans)ans=kans[x][y];
       flag=1;
      }
      else
      {
        f[rear].x=nx;f[rear].y=ny;f[rear].step=f[front].step+1;
        ++rear;
      }
     }
    }
    ++front;
  }
  for(int k=0;k<4;k++)
  {
    nx=x+kx[k];ny=y+ky[k];
    if(nx<0||nx>=n||ny<0||ny>=m)continue;
    if(map[nx][ny]==' ')
    { nx=nx+kx[k];ny=ny+ky[k];
      if(nx>=0&&nx<n&&ny>=0&&ny<m&&!vis[nx][ny])
      bfs(nx,ny);
    }
  }

}
int main()
{
  cin>>m>>n;
  memset(kans,0,sizeof(ans));
  m=2*m+1;n=2*n+1;
  cin.ignore(9999,'\n');
  for(int i=0;i<n;i++)
  cin.getline(map[i],9999,'\n');
  int num;
  //bool flag=0;
  for(int i=0;i<n;i++)
  {
    if(map[i][0]==' ')
    { memset(vis,0,sizeof(vis));
      ans=0;
      bfs(i,1);
    }
    else if(map[i][m-1]==' ')
    {memset(vis,0,sizeof(vis));
      ans=0;
      bfs(i,m-2);
    }
  }
  for(int i=0;i<m;i++)
  { //if(flag)break;
     if(map[0][i]==' ')
    { memset(vis,0,sizeof(vis));
      ans=0;
      bfs(1,i);
    }
    else if(map[n-1][i]==' ')
    {memset(vis,0,sizeof(vis));
      ans=0;
      bfs(n-2,i);
    }
  }
  cout<<ans<<"\n";
  //cin>>m;
}
*/
/**
#include<fstream>
#include<cstring>
using namespace std;
const int mm=444;
const int nn=123456;
const int oo=1e9;
const int kx[]={0,1,-1,0};
const int ky[]={1,0,0,-1};
int kans[mm][mm];
bool vis[mm][mm];
int ans;
ifstream cin("maze1.in");
ofstream cout("maze1.out");
class node
{
  public:
  int x,y,step;
}f[nn];
char map[mm][mm];
int m,n;
void bfs(int x,int y)
{ bool flag=0;
  vis[x][y]=1;
  int rear=1,front=0;
  f[front].step=0;f[front].x=x;f[front].y=y;
  int nx,ny;
  while(front<rear)
  { if(flag)break;
    for(int i=0;i<4;i++)
    {
      nx=f[front].x+kx[i];ny=f[front].y+ky[i];

     if(map[nx][ny]==' ')
     { //if(x==3&&y==1)
       //cout<<"nx="<<nx<<"ny"<<ny<<endl;
       nx=nx+kx[i];ny=ny+ky[i];
       //if(x==3&&y==1)
       //cout<<"nx="<<nx<<"ny"<<ny<<endl;
      if(nx<0||nx>=n||ny<0||ny>=m)
      { kans[x][y]=f[front].step+1;
        if(kans[x][y]>ans)ans=kans[x][y];
        flag=1;break;
      }
      else if(kans[nx][ny])
      { for(int z=0;z<4;z++)
        {
          nx=f[front].x+kx[z];
          ny=f[front].y+ky[z];
          //if(x==3&&y==3)
          //cout<<nx<<" "<<ny<<" "<<"kans[nx][ny]"<<kans[nx][ny]<<endl;
          if(map[nx][ny]==' ')
          { nx=nx+kx[z];ny=ny+ky[z];
           if(kans[nx][ny])
           {
           if((kans[x][y]==0)||(kans[x][y]>kans[nx][ny]+f[front].step+1))
           kans[x][y]=kans[nx][ny]+f[front].step+1;
           }
          }

        }
      // if(x==3&&y==1)cout<<"nx="<<nx<<"ny="<<ny<<kans[nx][ny]<<" "<<f[front].step<<endl;
       if(kans[x][y]>ans)ans=kans[x][y];
       flag=1;
      }
      else
      {
        f[rear].x=nx;f[rear].y=ny;f[rear].step=f[front].step+1;
        ++rear;
      }
     }
    }
    ++front;
  }
  for(int k=0;k<4;k++)
  {
    nx=x+kx[k];ny=y+ky[k];
    if(nx<0||nx>=n||ny<0||ny>=m)continue;
    if(map[nx][ny]==' ')
    { nx=nx+kx[k];ny=ny+ky[k];
      if(nx>=0&&nx<n&&ny>=0&&ny<m&&!vis[nx][ny])
      bfs(nx,ny);
    }
  }

}
int main()
{
  cin>>m>>n;
  memset(kans,0,sizeof(ans));
  m=2*m+1;n=2*n+1;
  cin.ignore(9999,'\n');
  for(int i=0;i<n;i++)
  cin.getline(map[i],9999,'\n');
  int num;
  //bool flag=0;
  for(int i=0;i<n;i++)
  {
    if(map[i][0]==' ')
    { memset(vis,0,sizeof(vis));
      ans=0;
      bfs(i,1);
    }
    else if(map[i][m-1]==' ')
    {memset(vis,0,sizeof(vis));
      ans=0;
      bfs(i,m-2);
    }
  }
  for(int i=0;i<m;i++)
  { //if(flag)break;
     if(map[0][i]==' ')
    { memset(vis,0,sizeof(vis));
      ans=0;
      bfs(1,i);
    }
    else if(map[n-1][i]==' ')
    {memset(vis,0,sizeof(vis));
      ans=0;
      bfs(n-2,i);
    }
  }
  cout<<ans<<"\n";
 // cin>>m;
}
*/
/**
#include<fstream>
#include<cstring>
using namespace std;
const int mm=444;
const int nn=123456;
const int oo=1e9;
const int kx[]={0,1,-1,0};
const int ky[]={1,0,0,-1};
int kans[mm][mm];
bool vis[mm][mm];
int ans;
ifstream cin("maze1.in");
ofstream cout("maze1.out");
class node
{
  public:
  int x,y,step;
}f[nn];
char map[mm][mm];
int m,n;
void bfs(int x,int y)
{ bool flag=0;
  vis[x][y]=1;
  int rear=1,front=0;
  f[front].step=0;f[front].x=x;f[front].y=y;
  int nx,ny;
  while(front<rear)
  { if(flag)break;
    for(int i=0;i<4;i++)
    {
      nx=f[front].x+kx[i];ny=f[front].y+ky[i];

     if(map[nx][ny]==' ')
     { //if(x==3&&y==1)
       //cout<<"nx="<<nx<<"ny"<<ny<<endl;
       nx=nx+kx[i];ny=ny+ky[i];
       //if(x==3&&y==1)
       //cout<<"nx="<<nx<<"ny"<<ny<<endl;
      if(nx<0||nx>=n||ny<0||ny>=m)
      { kans[x][y]=f[front].step+1;
        if(kans[x][y]>ans)ans=kans[x][y];
        flag=1;break;
      }
      else if(kans[nx][ny])
      { for(int z=0;z<4;z++)
        {
          nx=f[front].x+2*kx[z];
          ny=f[front].y+2*ky[z];
          //if(x==3&&y==3)
          //cout<<nx<<" "<<ny<<" "<<"kans[nx][ny]"<<kans[nx][ny]<<endl;
          if(kans[nx][ny])
          {
           if((kans[x][y]==0)||(kans[x][y]>kans[nx][ny]+f[front].step+1))
           kans[x][y]=kans[nx][ny]+f[front].step+1;
          }

        }
      // if(x==3&&y==1)cout<<"nx="<<nx<<"ny="<<ny<<kans[nx][ny]<<" "<<f[front].step<<endl;
       if(kans[x][y]>ans)ans=kans[x][y];
       flag=1;
      }
      else
      {
        f[rear].x=nx;f[rear].y=ny;f[rear].step=f[front].step+1;
        ++rear;
      }
     }
    }
    ++front;
  }
  for(int k=0;k<4;k++)
  {
    nx=x+2*kx[k];ny=y+2*ky[k];
    if(nx<0||nx>=n||ny<0||ny>=m)continue;
    if(!vis[nx][ny])
    bfs(nx,ny);
  }

}
int main()
{
  cin>>m>>n;
  memset(kans,0,sizeof(ans));
  m=2*m+1;n=2*n+1;
  cin.ignore(9999,'\n');
  for(int i=0;i<n;i++)
  cin.getline(map[i],9999,'\n');
  int num;
  //bool flag=0;
  for(int i=0;i<n;i++)
  {
    if(map[i][0]==' ')
    { memset(vis,0,sizeof(vis));
      ans=0;
      bfs(i,1);
    }
    else if(map[i][m-1]==' ')
    {memset(vis,0,sizeof(vis));
      ans=0;
      bfs(i,m-2);
    }
  }
  for(int i=0;i<m;i++)
  { //if(flag)break;
     if(map[0][i]==' ')
    { memset(vis,0,sizeof(vis));
      ans=0;
      bfs(1,i);
    }
    else if(map[n-1][i]==' ')
    {memset(vis,0,sizeof(vis));
      ans=0;
      bfs(n-2,i);
    }
  }
  cout<<ans<<"\n";
 // cin>>m;
}
*/
/**#include<fstream>
#include<cstring>
using namespace std;
const int mm=444;
const int nn=123456;
const int oo=1e9;
const int kx[]={0,1,-1,0};
const int ky[]={1,0,0,-1};
int kans[mm][mm];
int ans;
ifstream cin("maze1.in");
ofstream cout("maze1.out");
class node
{
  public:
  int x,y,step;
}f[nn];
char map[mm][mm];
int m,n;
void bfs(int x,int y)
{ bool flag=0;
  int rear=1,front=0;
  f[front].step=0;f[front].x=x;f[front].y=y;
  int nx,ny;
  while(front<rear)
  { if(flag)break;
    for(int i=0;i<4;i++)
    {
      nx=f[front].x+kx[i];ny=f[front].y+ky[i];

     if(map[nx][ny]==' ')
     { //if(x==3&&y==1)
       //cout<<"nx="<<nx<<"ny"<<ny<<endl;
       nx=nx+kx[i];ny=ny+ky[i];
       //if(x==3&&y==1)
       //cout<<"nx="<<nx<<"ny"<<ny<<endl;
      if(nx<0||nx>=n||ny<0||ny>=m)
      { kans[x][y]=f[front].step+1;
        if(kans[x][y]>ans)ans=kans[x][y];
        flag=1;break;
      }
      else if(kans[nx][ny])
      { for(int z=0;z<4;z++)
        {
          nx=f[front].x+2*kx[z];
          ny=f[front].y+2*ky[z];
          //if(x==3&&y==3)
          //cout<<nx<<" "<<ny<<" "<<"kans[nx][ny]"<<kans[nx][ny]<<endl;
          if(kans[nx][ny])
          {
           if((kans[x][y]==0)||(kans[x][y]>kans[nx][ny]+f[front].step+1))
           kans[x][y]=kans[nx][ny]+f[front].step+1;
          }

        }
      // if(x==3&&y==1)cout<<"nx="<<nx<<"ny="<<ny<<kans[nx][ny]<<" "<<f[front].step<<endl;
       if(kans[x][y]>ans)ans=kans[x][y];
       flag=1;
      }
      else
      {
        f[rear].x=nx;f[rear].y=ny;f[rear].step=f[front].step+1;
        ++rear;
      }
     }
    }
    ++front;
  }
  for(int k=0;k<4;k++)
  {
    nx=x+2*kx[k];ny=y+2*ky[k];
    if(nx<0||nx>=n||ny<0||ny>=m)continue;
    if(kans[nx][ny]==0)
    bfs(nx,ny);
  }

}
int main()
{
  cin>>m>>n;
  memset(kans,0,sizeof(ans));
  m=2*m+1;n=2*n+1;
  cin.ignore(9999,'\n');
  for(int i=0;i<n;i++)
  cin.getline(map[i],9999,'\n');
  int num;
  ans=0;
  //bool flag=0;
  for(int i=0;i<n;i++)
  {
    if(map[i][0]==' ')
    { bfs(i,1);
    }
    else if(map[i][m-1]==' ')
    {
      bfs(i,m-2);
    }
  }
  for(int i=0;i<m;i++)
  { //if(flag)break;
     if(map[0][i]==' ')
    { bfs(1,i);
    }
    else if(map[n-1][i]==' ')
    {
      bfs(n-2,i);
    }
  }
  cout<<ans<<"\n";
 // cin>>m;
}
*/
/**#include<fstream>
using namespace std;
const int mm=444;
const int nn=123456;
const int oo=1e9;
const int dx[]={0,2,-2,0};
const int dy[]={2,0,0,-2};
const int kx[]={0,1,-1,0};
const int ky[]={1,0,0,-1};
ifstream cin("maze1.in");
ofstream cout("maze1.out");
class node
{
  public:
  int x,y,step;
}f[nn];
char map[mm][mm];
int m,n;
int bfs(int x,int y)
{
  int rear=1,front=0;
  f[front].step=0;f[front].x=x;f[front].y=y;
  int nx,ny;
  while(front<rear)
  {
    for(int i=0;i<4;i++)
    {
      nx=f[front].x+kx[i];ny=f[front].y+ky[i];

     if(map[nx][ny]==' ')
     { //if(x==1&&y==1)
       //cout<<"nx="<<nx<<"ny"<<ny<<endl;
       nx=nx+kx[i];ny=ny+ky[i];
      // if(x==1&&y==1)
       //cout<<"nx="<<nx<<"ny"<<ny<<endl;
      if(nx<0||nx>=n||ny<0||ny>=m)return f[front].step;
      else
      {
        f[rear].x=nx;f[rear].y=ny;f[rear].step=f[front].step+1;
        ++rear;
      }
     }
    }
    ++front;
  }
  return -1;
}
int main()
{
  cin>>m>>n;
  m=2*m+1;n=2*n+1;
  cin.ignore(9999,'\n');
  for(int i=0;i<n;i++)
  cin.getline(map[i],9999,'\n');
  int ans=0;
  int num;
  for(int i=1;i<n;i+=2)
  for(int j=1;j<m;j+=2)
  { //if(map[i][j]==' ')
    num=bfs(i,j)+1;
    //cout<<i<<" "<<j<<endl;
    if(num>ans)ans=num;
    //cout<<num<<endl;
  }
  cout<<ans<<"\n";
 // cin>>m;
}
*/


 

 

 

 

 

 

 

USER: Neal Gavin Gavin [nealgav1]
TASK: maze1
LANG: C++

Compiling...
Compile: OK

Executing...
   Test 1: TEST OK [0.000 secs, 5748 KB]
   Test 2: TEST OK [0.000 secs, 5748 KB]
   Test 3: TEST OK [0.000 secs, 5748 KB]
   Test 4: TEST OK [0.000 secs, 5748 KB]
   Test 5: TEST OK [0.000 secs, 5748 KB]
   Test 6: TEST OK [0.000 secs, 5916 KB]
   Test 7: TEST OK [0.000 secs, 5748 KB]
   Test 8: TEST OK [0.000 secs, 5748 KB]
   Test 9: TEST OK [0.011 secs, 5748 KB]
   Test 10: TEST OK [0.011 secs, 6052 KB]

All tests OK.

Your program ('maze1') produced all correct answers! This is your submission #8 for this problem. Congratulations!

Here are the test data inputs:

------- test 1 ----
1 1
+-+
   
+-+
------- test 2 ----
9 1
+-+-+-+-+ +-+-+-+-+
|                 |
+-+-+-+-+ +-+-+-+-+
------- test 3 ----
3 3
+-+-+-+
  |   |
+ + + +
|   | |
+-+-+ +
|     |
+-+ +-+
------- test 4 ----
8 7
+ + +-+-+-+-+-+-+
|   | |   |     |
+ + + + + + +-+ +
| | |   | | | | |
+ + + +-+ + + + +
|   | |   | |   |
+-+ + + +-+ +-+-+
|   |   |     | |
+ + +-+ + +-+ + +
|       |       |
+-+-+-+ +-+ +-+-+
|   |     | |   |
+ + + +-+ + + +-+
|     |         |
+-+-+-+-+-+-+-+-+
------- test 5 ----
25 25
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                 |
+ + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
------- test 6 ----
38 100
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
------- test 7 ----
30 75
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                                            |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|                                                            
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
------- test 8 ----
38 100
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   |   | |     |   |   |   | |       |   | | |   |     |   |   |     | |    
+ +-+ + + + +-+ + +-+ + + + + +-+ + + + + + + + + + + + + + + +-+ + + + + + +
|     |       |       |   | |     | |   | | | | | | | | | | | | | | |   | | |
+ + +-+-+-+-+ +-+ + +-+ +-+-+-+ +-+-+-+-+ + + + +-+ + +-+ + + + + + +-+-+ + +
| | |   | |   | | | |         |       |     | | |   | |   |   | | |   |   | |
+ + + + + + + + + +-+ + +-+ +-+ + +-+-+ + + + + + +-+ + +-+ +-+ + + + + +-+ +
| |   |   | |   | | | |   |     | | |   | | | | |   | |   | | | | | |   |   |
+-+ + + +-+ + +-+-+ +-+ + + +-+ +-+ +-+ + + + + + + + + + + + + + + +-+-+-+-+
| | | | | | | | | |   | | |   |   | | | | | |     | |   | | |   | |   |   | |
+ + + + + +-+ + + +-+ +-+ + + + +-+ + + + +-+ +-+-+ +-+-+ + + +-+ + + + +-+ +
|   | | |   | |   | |   | | | | |   | | |   |   | |   |   | |   | | | | |   |
+-+ + + + + + + +-+ +-+ +-+-+ + + +-+ +-+ +-+ + + + + + +-+ + + + + +-+ + + +
| | | |   | |     |   | |   | | |     | |     | |   | |   | | |   |   | | | |
+ +-+ +-+-+ + +-+ +-+ + +-+ + + + + +-+ +-+ +-+-+ +-+-+ + + + + +-+-+-+ +-+ +
|   | |   | | |   | | |     | |   | |   | | |   | |   | | |   | |   |   | | |
+-+ + + + + +-+-+ + + + +-+ + +-+-+ + + + + + +-+-+ +-+ + +-+-+ + +-+ +-+ + +
| |   | | |   | |     | |   | | | | | | |   |   | | | | |   | | | | | | | | |
+ +-+ + + +-+ + +-+ + + +-+ +-+ + + + + +-+-+ + + + + + +-+ + + + + + + + + +
|   |   | | | |   | | | | |   | | |   |   | | |   | |   | | |     | |   | | |
+ + + +-+ + + + +-+ +-+ + + +-+ + + +-+ + + + +-+-+ + + + + +-+ +-+ + +-+ + +
| | | |   | |   | |   |   |       | |   | | |   |   | | | | |   |   | |   | |
+ + + +-+ + + +-+ + +-+ +-+ + +-+-+ +-+ +-+ + + + +-+ + + + + +-+ + + + +-+ +
| |   | | | |     |       | |   | | | |   |   |   | | | | | |   | | | | |   |
+-+ + + + + + +-+-+ + +-+ +-+-+ + + + +-+-+-+ +-+-+ +-+ + + +-+ + + + + + + +
|   | | |   |   |   |   | |   | | | |     |     |     | | |   |   |   |   | |
+ + + + + + + +-+ + +-+ + + +-+ + + + + +-+ +-+ + +-+-+ + + + + +-+ +-+ + +-+
| | | | | | |   | | | | |   | | | | | | |     |   |   | | | | | | | |   |   |
+-+ +-+ +-+ +-+ + + + + + +-+ + + + + + + + + + + + + + + +-+ + + + + + +-+-+
| |   | |   |   | |   | | |   | | | | | | | | | | | | | | | | | | | | | |   |
+ + +-+ + + +-+ +-+ +-+ + + + +-+ + +-+ + + + +-+-+-+ + + + +-+ + + + + + + +
| | |   | | | | | | |   | | | | | |   |   | |   | | | | |   | | | |   | | | |
+ + + +-+ + + + + + + + + + +-+ + + + + + +-+ +-+ + + + + +-+ + + + +-+ + + +
|     | | |   |   | | | |   | |     | | | | | |   | | | |   | | |   | | | | |
+-+ + + +-+ +-+-+ + +-+ + +-+ +-+ + +-+ + + + + + + + + + + + + + + + + + + +
|   | | | | | | | |   | | | |   | |   | | |   | | | | | | | |   | | | | | | |
+ +-+ + + + + + + + +-+-+ + + +-+ + + + +-+-+-+ +-+ + + + + + + + + + + + + +
| | | | | | | |   | |   |     | | | | | | | |   | | |     | | | | | |     | |
+ + + + + + + + + + + +-+-+ + + + +-+ + + + + +-+ + + + +-+ + + + + + +-+-+-+
| | | | |   | | | |   | |   | | | |   | | | |     | | |   | | | | | | | |   |
+ + + + + + + +-+-+ +-+ + + + + + + +-+ + + + + +-+ + + + + +-+ + + + + + +-+
|   | | | |   |     |   | | | | | | |       | | |   | | | | | | | | | | | | |
+ +-+ + + +-+-+ + + + +-+ + + + + +-+ +-+-+-+ +-+ +-+ + + + + + + + + + + + +
| | | | |   | | | | | | | | | | | | | | |           | | | | | | | | | | | | |
+-+ + + + + + +-+ +-+ + +-+-+-+ + + + + + +-+-+-+-+-+ + + + + +-+ + +-+ + + +
|     |   | |   |     |     | | |   | | |   |   |   | | | | | |   | |   | | |
+ + + + + +-+ +-+ + +-+-+-+ + + + +-+ + + +-+ + +-+ + +-+ +-+ +-+ +-+ + + + +
| | | | | |   | | | |   | |             |   | | | |   | | |     |   | | | | |
+ + + + +-+ +-+ +-+ + +-+ +-+-+ + + +-+ + + + + + +-+ + + + + +-+ + + + + + +
| | | |   | |     | | | | | |   | | |   | | | | | | | | | | | | | | | |     |
+ + + + + + + +-+ + + + + + + + + + +-+ + +-+ + + + + + + + + + + + + + +-+-+
| | | | | | |   | | | |       | | |   |   | | | | | | | |   | |   | | |   | |
+ +-+-+ +-+ + +-+ + + + +-+-+ + + + +-+-+ + + + + + + + + +-+-+-+ + + +-+-+ +
| |   |   | | | |   | | |   | | | |     | | | | | | | | |   |   | | |   |   |
+ +-+ + + + + + + + + +-+ +-+ + + + +-+ +-+ + + + + + + +-+ + + + + + +-+ +-+
| |   | |   |   | | | |   |   | | | | |   | | | | |   |   | | | | |   |   | |
+ + + + +-+-+ + + + + + + +-+ + +-+ + + +-+ + + + +-+-+-+ + + + +-+-+ + + + +
| | |   |   | | | | | | | |   | | | | |       | | |   |     | | |   | | | | |
+ + +-+ + + + + +-+ + +-+ + + + + + + + +-+-+ + + +-+ +-+-+ + + + + +-+ + + +
| | | | | | | | | | | | | | | | | | | | |   | | |   | | |   | | | |   | | | |
+ + + + +-+ + +-+ + + + + + + + + + + + + +-+-+ + +-+ + + + + +-+ + +-+ + + +
| | |     | | | | | | | | | | | |   |   | |   |     |   | | | |   | |   | | |
+ + +-+-+-+ + + + + + + + +-+-+-+-+ + + + +-+ + +-+-+-+ +-+ + + +-+ + +-+ + +
| | | | | |   | |   | | | |     |   | | |   | | |   | |   |   | |   | | | | |
+ + + + + +-+ + +-+ + + + + + + + + + +-+ +-+ +-+ +-+ +-+ + + + +-+ + + + + +
| | |   | |   | |     | | | | | | | |   | |     |   | | | | |     |   | | | |
+ +-+-+ + + + + +-+ + + + +-+ + + +-+-+ + + +-+ + +-+ + + + + +-+-+ +-+ + + +
| | |     | |   | | | |   | | | | |   | |     |   |   | | | | |   | | | | | |
+ + +-+ +-+ + + + + + +-+ + + + + + +-+ + +-+ + + + +-+ + + + + +-+ + + + + +
| | |     | | |   | | | | | | | | | | |     | | | | |   | | | | |   | | | | |
+ + + +-+ +-+-+ + +-+ + + + + + + + + + +-+-+ + + + + + + + + + +-+ + + + + +
| | | |   |   | | | |   | | | | | | | |     | | |     | | | | |   |   |     |
+ + + +-+ + + + +-+ + +-+ + + + + + + +-+ +-+ + + + +-+ + + + +-+ + + + +-+ +
|     |   | | |     | | | | | | | | |   | |   | | |   | |   | |   | | | |   |
+ +-+-+-+ + + + + + + + + + + + + + + + +-+-+ + + +-+ + +-+ + + +-+ + + + + +
| | |   | | | | | | | |   | | | |     | | | | | |   | | | | | |   | | | | | |
+ + +-+ + + + + +-+ + + +-+ + +-+ +-+-+ + + + + +-+ +-+-+ + + + +-+-+-+ + + +
| |   | | | | | |   |   |   |   | |   |   | | |   |   |   | | | | |   | | | |
+-+ + + + + + +-+ + + +-+ + +-+ + + + + + + + + + + +-+ + +-+ + + + + + + + +
|   | | | | |   | | | | | | | | |   | | |   | | | | |   | |   | | | | | | | |
+ + +-+ + + + +-+ + + + + + + + + +-+-+ +-+-+ + + + + +-+ +-+ + + + + + + + +
| |   | | | |   | | | | | | | |     | |   |   | | | |   |   | | | | | | | | |
+ +-+ + + + + + + + +-+ + + + +-+-+-+ + +-+ + +-+ + + +-+ +-+ + + + +-+ + + +
| | | |   | | | | | |   | | | |   | |   | | | | | | | | | | |   | |   | | | |
+ + +-+-+ + + + + + + +-+ + + + + + + +-+ + + + + + + + + + + +-+ + + + + +-+
| | |   | | | | | |       |   | | | | |   | |   | | | | | | |       | | | | |
+ + + +-+ + +-+ + + +-+ +-+ + + + + + + +-+ + +-+ + + + + + + +-+-+-+ + + + +
| | | | | | | | | | |   | | | | |   | |   | | |   | | | | |   | |   | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + +-+-+ + + +-+-+ + + + + + +-+ +
| |     |   | | | | | | |   | | | | |   | | | |   | | |   |     | | | | |   |
+ +-+-+ + +-+ + + + + +-+-+-+ + + +-+ +-+ + + +-+ + + + + + + + + + + + + +-+
|     | | | |   | | | | |   | | | | |   | | | | | | | | | | | | | | | | | | |
+ + +-+ + + + +-+ + + + + + + + + + + +-+ +-+-+ + + + + + + + + + + +-+ + + +
| | |   |   | | | | | | | | | | | | | |   |   |   | |   | | | | | | | | | | |
+-+ +-+ + + + + + + + + + + + + + + + +-+ + + + + +-+ +-+ + + + + + + +-+ + +
| |   |   | |   | | | | | | |   | |   | | | | | | |   | | | | |   | | |   | |
+ +-+ + + + + + + + +-+ +-+ + + + +-+ + + + + +-+ + +-+ + + + + +-+ + + +-+ +
|   | | | | | | | |   | | | | | |   | | |   | |   |   |   | | | |   | | |   |
+-+ + + +-+ + + + + + + + + +-+ + +-+ + + +-+ + +-+ + +-+-+ +-+-+ + + + + + +
| | |   |   | | | | | | | |   | | | |   | | | | |   |   |   |   | |   | | | |
+ + +-+ + + + +-+ + + + + +-+ + +-+ + +-+ + + + + + + + + + + +-+ + +-+ + + +
|   | | | | | | | | |   | | | |   | | | | | | | | | | | | | | |   | | | | | |
+ + + +-+-+ + + + + + +-+ + + + + + + + + + + + + + + + + + + +-+ + + + + + +
| | |   | | | | | | | |   | |   |   | | | |       | | | | | | |   | | | | | |
+ + +-+ + +-+ + + + + + +-+ +-+ +-+ + + + +-+ +-+-+ + +-+ +-+ + + + + + + + +
| | | | |   | | | | |   | | |   | | |   | | |   |   | | | |   | | | | |   | |
+-+ + + +-+ + + + + + + + + +-+ + + + +-+-+ + + +-+ + + + + + + + + + + +-+ +
| | | |   | |   | | | | | | | |   | | |     | | | | | | | | | | | | | | | | |
+ + + +-+ + + +-+-+-+ + + + + +-+-+ + + + +-+ + + + +-+ +-+ + + + + + + + + +
|   |   | |       | | | |   |   | | | | | | | |   | |   |   |   | | |   |   |
+-+ +-+ + +-+ + + + + + + +-+ +-+ + + +-+ + +-+ +-+ + +-+ + +-+-+ + +-+ +-+-+
| |   | |   | | | | | | |   | | | | |   | | | |   | |   | | | |   | | | | | |
+ +-+ + +-+ + +-+ + + + + + + + + + + +-+ + + +-+ + + +-+-+-+ +-+ + + + + + +
| |   |   | |   | | | | | | |   | | | |     |   | | | | | | |   | | | | | | |
+ + + +-+ + + + + + + + + + + + + + + + +-+ + + + + + + + + + + + + + + + + +
| | |   |   | | | | | | | |   | | | | |   |   | | | | | | |   | | | |   | | |
+ +-+ + +-+ + + + + + + + + +-+-+ + + + + +-+-+ + + + + + + + + + + + +-+ + +
|   | |   | | | | | | |   |   | | | | | | | | | | |   |   | | | | |   |   | |
+ + + +-+ + + +-+ + + + +-+ + + + + + + + + + + + + +-+ + +-+ + + + +-+ +-+ +
| | | | |   | | |   | | | | |   | | | | |     | | | | | |   | | | | |   |   |
+-+ + + +-+ + + +-+-+ +-+ +-+ +-+ + + + +-+-+ + + + + + + +-+ + + + + +-+ +-+
| |   |     |   | | | |   | |   |   | | | | | | | | |   | | | |   | | |     |
+ +-+ + + + + +-+ + +-+ + + + +-+ +-+ + + + +-+ + +-+-+-+ + + +-+-+ + + +-+ +
|   | | | |   |   |   | | |   | | | |   | |     | | |   | | | |   | | | | | |
+ +-+ + + +-+ + +-+ +-+ + +-+ + + + + + + +-+ + + + + +-+ + + + + + + + + + +
| | | | |   |   |   |   | | | | | |   | | | | | | | | | | |   | | | | | | | |
+ + + + +-+ + +-+-+ + +-+ + +-+ + +-+-+ + + + + + + + + + +-+ + + + + + + +-+
| | | | | | | | | | | |     |   | |   | | | | | | | | |   | | | | |   | |   |
+ + + + + + + + + + + + +-+-+-+ + + + + + + + + + + + + +-+ + + + + +-+ + + +
| | | | | | | | | |   | | |   | | | |     | | | | | | |   | | | | | |   | | |
+ + + + + +-+ + + + +-+ + + + + + + +-+-+ + + +-+ + + + + + + +-+ + + +-+ + +
| |   | | |   |   | | | | | | |   |     | | | | | | |   | | |   | |   | | | |
+ +-+ + + + + + +-+ + + + + + +-+-+ +-+ + + + + + + + + + + + +-+ + +-+ +-+ +
|   | | | | | | | | | | |   | |   | | | |   | | | | | | | | | | |   | | | | |
+ + +-+ + + + + + + + + +-+ + + + + + +-+ +-+ + + + + + + + + + + +-+ + + + +
| |   | | | | |   | | | | | | | | | |   |   | | | | | | | | |   | |   |   | |
+-+-+ + + + + + +-+ + + + +-+ + + + + +-+-+-+ + + + + +-+ + + + + + +-+ + + +
|     | | | |   |     | |   |   | |   |     | |   | | | | | | | | | | | | | |
+-+ + + + + + +-+-+ + + + +-+-+ + + +-+ +-+-+ +-+ + + + + + + + + + + + + + +
|   |   | | | |     | | | |     |   |     | | | | | | | | | | | | | | | | | |
+ + +-+-+ + + + +-+-+-+ + +-+-+ +-+ + +-+ + + + + + + + + + + + + + + + + + +
| | |   |   |   |   | | | | | | | | |   | |     | | | | | | | | | | |   | | |
+ + + +-+ + + +-+ + + + + + + + + + + +-+ + + +-+ + + + + + + + + + + +-+-+ +
| | | | | | |   | | | |   | | | |   | | | | | |   | | | | | | | | | | |   | |
+-+ + + + + +-+ + + + + +-+ + + +-+ + + + +-+ +-+ + + + + + + +-+ + + +-+ + +
| | | | | | | | | | | | | | |   | |   | |   | | | | |   | | | | | |       | |
+ + + + + + + +-+ + + + + + +-+ + + + + + + + + + + + + + + + + + + +-+-+ + +
| | | |   | |   | |   |   | |   |   | | | | | | | |   | | | | | | | | |   | |
+ + + + + + + +-+ +-+ + +-+ +-+ + +-+ + + +-+ + + +-+ +-+ + + + + + + +-+-+ +
| | | | | | |   |   | | |   | | |   |   | |   | | | |   | | |   | |   | | | |
+ + + +-+ + + + +-+ + + + +-+ + + + + + +-+-+ + +-+ + +-+ + + + + + +-+ + + +
| | | | | | | | | | | | | |   | | | | | |     | |   | | | | | | |     | | | |
+ + + + + + + + + + + + + + + + + + + +-+ +-+ + + +-+ + + + + + + +-+-+ + + +
| | |   | |   | | | | | | | | | | | | | | | |   | |   | | | | | | |   |   | |
+ + + + + +-+-+ + + + + + + + +-+ +-+ + + + + +-+ + +-+ + + + + + + +-+ +-+ +
| | | | | |   | |   | | | | | |   |   |   |   |   | |   | |   | | | |   |   |
+ + +-+ + + +-+ +-+ +-+ + + + + + +-+ + + +-+ + +-+ + + + + + + + + + +-+ +-+
| | | | | | | | | | | |   | | | | | | | | | | | |   | | | | | | | |   |   | |
+ + + + + + + + + + + +-+-+ +-+ +-+ +-+ + + + + + +-+ + + + + + + + +-+ +-+ +
| | | |   | | |   |   |   |   | |   |   | | | | | |   | | | | | | | |   |   |
+ + + +-+ + + + +-+-+ + + + + + + + +-+ + + + + + + +-+ +-+ +-+ + + + + + + +
    | |   | | | |   | | | | | | | |   | | | | | |   | | | |   | | |   | | | |
+-+ + + + + + + +-+ + + + + + + + + +-+ + + + + + + + +-+ + + + + + +-+ + + +
| | | | |     | |     | | | | | | | |   | | |     | |   | | | | | | |     | |
+ + + + + + + + +-+ +-+ + + +-+ + + +-+-+ + + + + + + + + + + + + + + +-+-+ +
|   | | | | | | |   |   | |   |   | |   | |   | | | | |   | | | |   | | | | |
+ + + + + + +-+ + +-+ +-+-+ +-+ +-+ +-+ + +-+ +-+ + + +-+ + +-+ + + +-+ + + +
| | | | | | | | |   | |   | | |   | | | |   | | | | | | | | |   | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + +-+ + + + + + + + + +-+ +-+ + + + +
| | | | | | | | | | | | |   | | | | | | | | | |   | | | | | | | | |       | |
+ + + + +-+ + + + + + + + +-+ + + + + + + + + +-+-+ + + + + +-+ + + +-+-+ + +
| | | | | |   | | |   | | | | | | | | |   |   |   |   |   | | | | | |   | | |
+ + + + + + +-+ + +-+-+ + + + + + + + +-+ +-+-+ + + +-+ +-+ + + + + + + + + +
| | |   |   | | | | |   | | | | | | | | | | | | | | |   |   |   | |   | | | |
+-+ +-+-+ + + + + + + + + + + + + + + + + + + +-+ +-+ + +-+ +-+ + + +-+ + + +
| | | | | | | | | |   | | |   | | |   |   |   | | | | | | |   |   | | | | | |
+ + + + + + + + + + +-+ + +-+ + + +-+ +-+ + + + + + + + + + + + + + + + +-+ +
| | | | | | | | | |   | |   | | |   | | | | | | | | | | |   | | |   | | | | |
+ + + + + +-+ + + + +-+ + +-+ + +-+-+-+ + + + + + + + +-+ + +-+-+-+-+ + + +-+
|     | |   |   |     | | |   | | | | | |   | | |   | | | |   |     | | |   |
+-+ + + + +-+ + + +-+ + +-+ +-+ + + + + + +-+ + + +-+ + + + + + + +-+ + + + +
| | | |   |   |   | | | |   | | | | | |   | | | |   | | | | | | | |   | | | |
+ + + +-+-+-+ + +-+ +-+ + +-+ + + + + +-+ + + + + +-+ + + +-+ +-+ + + + + +-+
| | |   |   | | |   | | | | |   | | |   |   |   | | | | | | | | | | | |   | |
+ + + +-+ +-+ + + +-+ + + + + + + + + + + +-+ +-+ + + + + + + + + + + + +-+ +
| | |   | |   | | |   |   | | | |   | |   | | |   | | | | | | | | | | | |   |
+ +-+ + + + + + + + +-+ +-+ + +-+ + + +-+ + +-+ + + + + + + + + + + + + + + +
|   | | |   | | | | | | |   | |   | | | | |   | | | | | | | |       | | | | |
+-+ + +-+-+-+ + + + + + + + + + +-+ + + + + + + +-+ + + + + + + +-+-+ + + + +
| | | | | |   | | | | | | |   | | | | | | | | | |   | | | | | | |   | | | | |
+ + + + + + + + + + + + +-+-+ + + + + + + + + + + + + + + + + + + + + + + + +
| |   | | | | | | | | | |   | | | | | | | | | | | | | | | | | | | | | | | | |
+ +-+ + + + + + + + + + + +-+ + + + + + + + + + + + + + + + + + + + + + + + +
|   | |   | | | | |   | | | |   | | | | | | | | | | | | | | | | | | | |   | |
+ + + +-+ + + + + +-+ + + + + +-+ + + + + + + + + + + + + + + + + + + + +-+ +
| |   | | | | | | | | | | | | |   | | | | | | | | | | | | | | | | | | | | | |
+ +-+ + + + + + + + + + + + + + + + + + +-+ + + +-+ + + + + + +-+ + + + + + +
| | | | |   | |     |   | | | | | | | |   | | |   | | | |   | | | | | | | | |
+ + + + +-+-+ + +-+ +-+ + + + + + + + + + + + + +-+ + + + +-+ + + + + + + + +
| |       |   | |   |     |   | |   |   |   |   |     |   |   |   |   | |   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
------- test 9 ----
38 100
+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       |                   | |   | |   |   |   |       |   | |   | | |   | |
+ +-+-+-+ +-+ +-+-+ + +-+ +-+ + +-+ + +-+-+ + +-+-+ + +-+ +-+ + +-+ + + +-+ +
|           |     | | |       | | | | |       | | | |     |   | | | |     | |
+-+ + +-+-+-+ +-+-+-+-+-+ + +-+ + + + + +-+-+ + + + +-+ +-+-+ + + + + +-+-+ +
|   |   | | | | | | | | | |         | |     |   |     |   | |   |   |     | |
+-+ +-+ + + +-+ + + + + +-+-+ +-+-+-+ + +-+-+-+ + +-+-+-+-+ + +-+-+ + + +-+ +
|   |           |           |             |   |         |   | |   | | |     |
+-+-+ + + +-+-+-+ +-+-+-+-+-+-+ + +-+ +-+ + + + +-+-+-+-+ +-+ + +-+ + +-+-+-+
|   | | |     |           |   | |   |   |   | | |   |   |   |               |
+-+ + +-+ + +-+ +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+ +-+ +-+-+ + + +-+-+ +-+-+-+
|     |   |                   | |   | | |     |       | |     |     |       |
+ + +-+ + + + +-+ + + +-+ +-+-+ + +-+ +-+ + +-+ +-+-+-+ + +-+ +-+-+-+ +-+ +-+
| | |   | | | | | | |   |     |           | |               |     | |   | | |
+-+ +-+-+ +-+ + +-+-+ +-+-+-+ + + +-+-+ + + + +-+ + + + + +-+-+-+-+ +-+-+-+ +
|     | | |     | | |       |   |     | | |     | | | | |   | |     | |     |
+ + +-+ + + +-+ + + +-+-+ +-+-+-+-+ + +-+-+-+-+ + + +-+-+-+-+ + +-+-+ +-+ + +
| | |     | |       |   |         | |         | | | |     |   | | | |     | |
+ +-+-+ +-+ +-+ + +-+-+ +-+ +-+-+-+ +-+-+-+-+-+-+-+ + +-+-+ +-+ + + + +-+-+-+
| |     |     | |     | |         |         | |   | |   | | | |       |     |
+ +-+ +-+-+-+-+ +-+-+-+ +-+-+-+-+ +-+-+-+-+-+ + +-+-+ +-+ + + + +-+ +-+ +-+ +
| |   |                         |     | |   | | | |             | | |     | |
+ +-+-+-+ + +-+ + + +-+-+-+-+ + +-+ +-+ +-+ + + + + +-+-+-+ + + + +-+ +-+-+ +
|   | |   | |   | |         | |   |     |                 | | |   |   | | | |
+ +-+ +-+ +-+-+ +-+-+ + +-+ + + + + +-+-+ +-+-+ +-+ +-+-+-+-+-+-+ + +-+ + +-+
| |       |         | | |   | | | |           |   |   | | |   |     | |     |
+ + + + +-+-+ +-+-+-+-+ +-+ +-+ +-+-+-+-+ +-+ + +-+ +-+ + + + + + + + + +-+ +
| | | | |             |   |   |       | |   | |   |         | | | |       | |
+ + + +-+ +-+ + +-+-+ + + + + +-+-+-+-+ +-+-+ +-+ +-+-+ +-+ +-+-+ +-+ + +-+-+
| | | |   |   |   | | | | | |               | | |   | | | |     |   | | |   |
+-+ + +-+-+ + +-+ + +-+ + + + + + +-+ +-+ +-+-+ +-+-+ +-+ +-+ +-+-+-+-+ + + +
|   | |     | | | | | | | | | | | |     |   | |             |       | |   | |
+-+ + + +-+ +-+ + + + +-+-+-+-+-+ +-+-+ + + + + + + +-+ +-+-+-+-+-+-+ + +-+ +
| | | | |       |       |       |   |   | |     | | |               | |   | |
+ +-+-+-+ + + + + +-+-+-+ +-+ +-+-+-+-+-+ + +-+-+-+ + + +-+ + + +-+ + +-+-+-+
|       | | | | |           |     |   |   |       | | |   | | |   |         |
+ +-+-+ +-+ + + + +-+ +-+-+-+-+-+-+ + +-+-+ + +-+-+-+-+-+-+-+-+-+-+-+ +-+-+ +
| | |       | | |   | | |   |       |   | | |                       |     | |
+-+ + +-+ + + + + + +-+ +-+ + + +-+-+-+-+ +-+-+ + +-+ + + +-+ +-+-+ +-+-+-+-+
|     |   | | | | |   |   |   |       |       | | | | | | |   |   | |       |
+ +-+-+-+-+ + +-+-+ +-+ +-+ + +-+ +-+-+-+ +-+ + +-+ +-+-+-+-+-+ +-+-+ +-+-+-+
| |         |   |         | |   |       | | | |         |       |   |       |
+ +-+ + + + + +-+ + +-+-+ + +-+-+-+-+-+ + + + + +-+-+-+-+ +-+-+-+ +-+ +-+ +-+
| |   | | | |   | | | |       |   | | | |   | |       |     |   |       |   |
+ + +-+ +-+-+ + + + + + +-+ +-+ +-+ + +-+ + +-+-+-+ +-+ +-+-+ +-+ +-+-+-+ +-+
| |   | | |   | | | |   |                 |   |   |             |   |   | | |
+-+ + + + +-+ +-+ + +-+ +-+-+ +-+-+-+-+-+-+-+ + +-+-+-+-+-+-+-+-+ +-+ +-+-+ +
|   | | | |   | | | |   |         |     | | |           | | |   |     |   | |
+-+ +-+-+ +-+ + +-+-+ + + +-+ + + + + +-+ + +-+-+-+-+-+-+ + + +-+ +-+-+ +-+ +
|   |             |   | | |   | |   |   |       |     | |             |   | |
+-+-+ +-+-+-+ +-+-+ + + +-+-+ + + +-+ +-+ +-+-+-+ +-+-+ + + +-+ +-+-+-+ +-+ +
|       | | |   |   | | |     | |   |   |   | |         | | | |   | |     | |
+ + +-+-+ + + + +-+ +-+ + + +-+ + +-+-+-+ +-+ + + +-+-+-+ +-+ +-+-+ + + +-+ +
| |   | |     |   |   | | |   | |               |   | | |   |   | |   |     |
+ + + + + + +-+-+ + +-+-+ + +-+ + +-+-+-+-+ +-+-+-+-+ + + +-+ + + + + +-+-+-+
| | | |   |     | |   |   | |   |         |   |   |           |     | |     |
+ + +-+-+ +-+-+-+ +-+-+-+-+-+-+ + +-+ + + +-+-+ +-+ +-+-+-+-+ +-+-+ +-+ +-+-+
| | |           |   | |         | |   | |         |       | |   | |   |   | |
+-+-+-+-+ + +-+-+-+-+ + +-+ + +-+-+ + +-+ + + +-+-+ + +-+ + +-+ + +-+-+ +-+ +
|         |       |     |   |     | |   | | | |     |   |     |       |     |
+-+-+-+ +-+ +-+ +-+-+-+ + +-+ + +-+ + +-+-+-+ +-+ + +-+-+-+-+-+-+ + +-+-+ +-+
| |   |   | |       |   | | | |   | |       | |   |       |   |   |       | |
+ +-+ + + +-+-+ +-+-+-+-+ + + +-+ +-+ +-+ +-+-+ +-+-+ +-+-+ + +-+-+ +-+ + + +
|       | |         |     |     |   |   |       |   |     | | | |     | |   |
+-+ + + +-+-+ + + +-+-+-+ + +-+-+ +-+ +-+-+ +-+ + + +-+-+-+ +-+ +-+-+-+ + + +
| | | |     | | |   |     |   |   |   |   | |     | |     | | |       | | | |
+ +-+ + +-+-+-+ + + +-+ + +-+ +-+-+-+ +-+ +-+-+-+-+-+ +-+-+ + + +-+ + +-+-+ +
|     |       | | |   | |   |   |         |       | | | | |       | | |   | |
+-+ + +-+ + + +-+ + +-+ + +-+ +-+ +-+ +-+ + +-+ +-+ + + + + +-+-+-+-+-+-+ + +
|   |   | | | |   | |   |   |   | |   |       |                   | | | | | |
+ + + +-+-+-+-+-+ +-+-+ + + +-+ + +-+ + +-+ + +-+ + +-+-+ + +-+-+-+ + + + + +
| | |         |   |   | | |   | | | | | |   |   | |     | |             |   |
+ + + +-+ + + +-+-+-+ + + +-+-+-+ + + + +-+ +-+ + +-+-+ +-+ + +-+-+-+-+ + +-+
| | | |   | |   |   |   | | |     |   | |     | |     | |   |     | | | |   |
+ +-+ + + +-+-+-+ + + +-+ + + +-+ +-+ +-+ + + + +-+ +-+ +-+ +-+-+-+ + +-+ +-+
|   | | | |     | |   |   |     |   | |   | | | |   | | | |     |     | |   |
+ + + +-+-+ + +-+-+ + + + + + +-+ +-+-+ + +-+-+ +-+ + +-+ + + +-+ +-+-+ + +-+
| | |   |   |     | | | | | |   |   |   |     | |     |   | |   | |     | | |
+ + +-+-+-+-+ +-+ + + +-+-+ + +-+ +-+-+ + +-+-+-+-+ + + + +-+-+-+ + + + +-+ +
| |     |     |     |     | | |   | |   |     |     |   |           | | | | |
+ + +-+-+-+ + + +-+ +-+ + +-+ +-+ + +-+ +-+ + +-+ + +-+ +-+ +-+-+-+ +-+-+ + +
| |     |   | | |   |   | |   |       |   | | |   |   |   |   |   |         |
+ + +-+ +-+ + + + + + + + + + + + + +-+-+-+-+ + + + +-+ +-+-+ + + + +-+-+ +-+
| |   | |   | | | | | | | | | | | |       |   | | | |     |     | |     | | |
+ +-+-+ +-+ +-+ +-+ + + +-+ +-+ +-+ + + +-+ +-+-+-+ +-+ +-+-+-+-+ + + + +-+ +
|     | | |   |   | | | |   |     | | |   | |         |         | | | |     |
+ + +-+-+ + +-+-+ + + +-+-+-+-+ + + +-+ +-+ + +-+ +-+ + + +-+-+ +-+-+ +-+-+-+
| | |     |     | | |   |       | | | | | | |   |   | | | |   | | |         |
+ + +-+-+ + +-+ + +-+ +-+-+ +-+ +-+-+ +-+ +-+ +-+-+ + +-+ + +-+-+ +-+ +-+-+ +
| | |         | | |   |   |   |             |     | | |     |       | |   | |
+ +-+-+ + +-+ +-+-+-+ +-+ +-+ + + + + + + + + +-+-+ + + + + + +-+-+-+ + +-+ +
|     | | |     |   | |       | | | | | | | |   |   | | | |   |     |     | |
+ + + + +-+-+ +-+-+ + +-+ + + + +-+ + +-+-+ +-+ +-+-+-+-+ + + + +-+ + + + +-+
| | | |   |     |     | | | | |   | |     | |         |   | |     | | | |   |
+-+ + + + + +-+-+-+-+ + + +-+ +-+-+ + +-+ +-+ +-+ + +-+-+ + +-+-+-+ +-+ + + +
|   | | | |     |   | |   |       | |   |   |   | |   | | | |   | |   | | | |
+-+ +-+ + +-+-+ +-+ + + + + + +-+ +-+ +-+-+-+-+ +-+ +-+ +-+ + +-+ +-+-+-+ + +
|     | | |       |   | | | | |   |           | |     |   | |         | | | |
+ + +-+-+ + +-+ + +-+ + +-+ +-+ +-+ + + + + + +-+ +-+ + + + + + +-+-+-+ + +-+
| |     | | |   | |   | |   |     | | | | | |   | |   | |     |   | |       |
+ +-+ +-+ +-+-+ +-+ +-+ +-+ +-+-+ +-+ +-+ + + +-+-+-+-+-+ + + +-+-+ +-+-+-+ +
|   | |   |       |   | |     |   |     | | |     |       | |   |         | |
+-+ +-+ + +-+ +-+-+-+ + + + +-+ + + + +-+ + +-+-+-+-+-+ +-+-+ + + +-+-+-+-+-+
|   |   |   |   |     | | |   | | | |   | |       |     |     |             |
+-+-+ + +-+ + +-+-+-+ +-+-+ +-+ + +-+ +-+-+-+ +-+ + +-+ + +-+ +-+ + +-+-+-+-+
|     | |   |     |     | |   | | | |   |       | | |   | |     | |       | |
+-+-+-+ +-+ + +-+-+-+-+ + + +-+-+ + + + +-+ + + +-+-+ + +-+-+ + +-+-+ +-+-+ +
|         | | |   |     |       | |   | |   | | |     |     | | | | | |     |
+ +-+ + +-+ + +-+ +-+-+-+-+ + +-+ + + + +-+-+ +-+ +-+ +-+ +-+ +-+ + +-+ +-+ +
| |   |   | | |         | | |   | | | |     | | |   |   |   |           |   |
+ + +-+ + +-+-+-+ + + + + + +-+ +-+-+-+-+-+ +-+ + + + + + + + +-+ +-+ + +-+-+
| | |   |   |     | | |       | | |             | | | | | | |   |   | |     |
+ + + + +-+-+-+-+ + +-+ +-+-+ +-+ +-+-+ +-+ +-+-+ + + +-+ +-+-+ + +-+-+ +-+-+
| | | | | |   |   | | |     |     |       |   |   | | |     |   |   | |     |
+ + + + + + + +-+ +-+ + +-+-+ +-+-+ +-+-+-+ +-+-+ + + +-+ +-+-+-+ +-+ +-+ + +
| | | |     | |   |         | |         |     |   | | |   | | |         | | |
+ +-+ + + + + +-+-+ +-+ + + +-+-+-+ +-+ +-+ +-+-+-+-+-+-+ + + + + + + +-+ +-+
|   | | | | | | |   |   | |       |   | |     | |         |   | | | |   |   |
+-+ +-+-+ +-+ + +-+-+-+-+ +-+-+-+ + +-+-+-+-+ + +-+ +-+-+ + +-+ +-+-+-+ +-+-+
|   |     | | |   | | | |   | |   |   |         |   |         |       |   | |
+-+-+ +-+ + + + +-+ + + + +-+ + + + +-+-+ +-+ + +-+-+ +-+ +-+ + + +-+-+-+ + +
|     |     | | |         |   | | | |     |   |   |   |   | | | | | |   |   |
+ +-+-+-+ +-+-+ +-+-+ + + + +-+-+ +-+-+-+ +-+ + +-+-+-+-+ + +-+-+-+ + +-+ +-+
|   |       |     | | | |   |   |   | |   |   |   |           | |   | | | | |
+-+-+ + +-+ +-+ + + +-+ + + + + +-+-+ +-+ +-+ +-+ +-+-+-+ + + + +-+ + + +-+ +
|     | |   |   |       | |   |       |     | |   |       | |               |
+ +-+ +-+-+ +-+-+-+ +-+ +-+-+-+ + + +-+-+ + +-+-+-+ + +-+ +-+-+-+-+ +-+ +-+-+
| | | |         |   |     |   | | |     | | |     | | |   | |   | |   |     |
+-+ +-+ + + + +-+-+-+-+ + + +-+ + + +-+ + +-+-+ +-+ +-+-+ + +-+ + +-+-+-+-+-+
|       | | |   | | |   |     | | | |   | |     |   |     |   |     |       |
+ + + + +-+-+-+-+ + +-+ +-+ +-+-+ +-+ +-+-+-+-+ +-+-+-+-+ + +-+ +-+-+ +-+-+ +
| | | |     |           |     |     | |   |                               | |
+ + +-+ +-+-+-+-+-+ + +-+ + +-+-+-+ +-+ +-+-+-+ +-+-+ + + + + +-+ +-+-+-+-+ +
| | |   |           |   | |     |         |     |     | | | |   |       |   |
+ +-+-+ +-+ +-+-+ + +-+ + + +-+-+-+-+ +-+-+-+-+-+-+ + +-+ + + +-+-+-+-+ +-+ +
| | |   |   |     |   | | |         |     |         | |   | |     |   |   | |
+-+ + +-+-+ + +-+ +-+-+-+ + + + + +-+ +-+-+-+-+-+ +-+ +-+-+-+ +-+-+ +-+ +-+-+
|     |     | |       |   | | | |   | | |         |   |   | |         |     |
+-+-+ +-+ + +-+ + +-+ + +-+ +-+ + +-+-+ +-+ + +-+ +-+-+ +-+ + +-+ + +-+-+-+-+
|     |   | |   |   | |   | |   | | | |   | |   |   |           | | | |     |
+-+-+-+-+ +-+-+-+ +-+-+ +-+-+-+ + + + + +-+-+ +-+ +-+ +-+ + +-+ + +-+ + + + +
|         |           |   |     |     | |       |   |   | | |   |       | | |
+ +-+ +-+ + +-+ +-+-+-+-+ +-+-+ + + +-+ +-+-+ +-+ + + + +-+-+-+ +-+ + +-+-+-+
|   | |   | |         | | |     | |         |   | | | |   | |     | |     | |
+ +-+-+-+-+ +-+ + +-+ + +-+ + + +-+ + +-+-+-+ +-+ + + +-+-+ + +-+ + + +-+ + +
| |         |   | |     |   | | |   |     |     | | | |         | | |   |   |
+-+ + + +-+ +-+ +-+-+ +-+-+-+ +-+-+-+ + + +-+ + +-+-+ +-+-+ + +-+ +-+-+ +-+-+
|   | | |   |     | |   |         |   | | |   | | |   |     | |     |       |
+-+ +-+ +-+-+ + +-+ + + +-+ + + +-+ + + +-+-+ + + +-+ +-+-+ +-+ +-+-+ + + + +
|   |   |     | |     | |   | | |   | |   |   | |     |       |     | | | | |
+-+ +-+ +-+-+-+ +-+ + + + +-+ + + +-+ + +-+-+-+ + + +-+-+-+ +-+ + + + + +-+-+
|   |   |   | | |   | | |   | | |   | |   |     | | |       |   | | | |     |
+ +-+-+ +-+ + + +-+-+-+-+-+ + +-+-+ +-+ +-+-+-+ + +-+ +-+ + +-+ + +-+ + +-+ +
| | |   |             |     |   |     |   |   | | |     | | | | | |   |   | |
+ + +-+-+-+ +-+ +-+-+-+-+-+ +-+-+ + + + +-+-+ +-+ + + +-+ + + +-+ +-+-+ +-+ +
| |   |       | |     | |   |     | | | |       | | | |   |     |     | |   |
+-+-+ +-+ + +-+ + +-+-+ + +-+-+-+ + + +-+-+-+ +-+ +-+ + +-+ + + + +-+-+-+-+ +
|       | |   |     | |       |   | | |             | |   | | | |   |     | |
+ +-+-+ +-+-+-+ + + + +-+ +-+ +-+ +-+ +-+ + + + +-+ + +-+ +-+-+ +-+ + +-+-+ +
| |             | | |       | |     | |   | | |   | | | |   |     |   |     |
+-+ +-+ + + +-+ +-+-+ +-+ +-+-+ +-+-+-+-+ +-+ +-+-+ + + +-+-+-+ +-+ + + +-+ +
|   |   | | | |   |     |     |   | |     |   |     |   |         | | | |   |
+-+-+-+-+ +-+ + + +-+ +-+ + + + +-+ + + + +-+-+-+ + + + +-+-+ + + + +-+ + + +
|     | | |     | |   |   | | |   |   | | |       | | |     | | | | |   | | |
+ + + + +-+ +-+ +-+-+ + + + +-+-+ +-+ + +-+-+-+-+ + +-+ +-+-+ + + + +-+ + +-+
| | |       | |   |   | | |   |   |   | | |       |   | |     | | | |   |   |
+ + + +-+-+ + + +-+ + + +-+ +-+ +-+ +-+-+ + +-+-+ +-+-+ +-+ +-+-+ + + +-+ +-+
| | | |     |     | | | | |   | |   | |       |       |   | |     | | |     |
+-+-+ +-+-+ + + +-+-+ +-+ + +-+ +-+-+ +-+-+-+-+ + + + +-+-+-+ +-+ + +-+-+ +-+
| |   |     | | |       |   |     |             | | |     | | | | | |     | |
+ +-+ +-+-+ + +-+ + + +-+ +-+-+-+-+ + +-+ + +-+ + +-+ +-+-+ +-+ + + + + + + +
|   | | |   |   | | | |         | | | |   | |   | |             | | | | |   |
+-+ +-+ +-+-+ +-+-+ +-+ + + + +-+ + +-+-+-+ +-+ +-+-+-+ +-+ +-+ +-+-+ + + +-+
|       |         |   | | | | | |   |   |   | | |         | |       | | |   |
+-+ + +-+-+-+ +-+-+ +-+-+-+-+-+ +-+ +-+ +-+ + +-+ + +-+ + +-+-+-+-+-+ + +-+ +
|   |           |           |   |   |           | | |   |         |   | |   |
+-+-+-+ +-+ + +-+-+ + + +-+-+-+ +-+-+-+ +-+ + +-+ +-+-+-+ + +-+ + + + +-+ + +
|       |   |     | | | |               | | | |       |   |   | | | | | | | |
+ +-+-+ +-+-+ + +-+ +-+-+-+ + + + + +-+ + + +-+ +-+-+ + +-+-+ +-+-+ +-+ +-+-+
| | |       | |   |       | | | | | |   |   | |   | | |   |       |   | |   |
+-+ + + + + +-+ +-+ + +-+ + + + +-+ +-+ + + + +-+ + +-+ +-+ + + + +-+-+ + +-+
| |   | | |   |   | | |   | | |   | |   | |     |     |   | | | |           |
+ +-+ + +-+-+ + +-+ + +-+-+ +-+-+-+-+-+-+ +-+-+-+ + + + + +-+ + + +-+ + + +-+
|     |     | |   | | |       |           | |     | | | |   | | |   | | |   |
+-+ +-+ +-+ +-+-+ +-+ + + +-+-+-+-+ +-+ +-+ + + +-+ +-+ + + +-+-+ + + + +-+-+
|   |     |   |   | | | |   |         |     | |   | |   | |   |   | | |     |
+ +-+ +-+-+ +-+-+ + + +-+-+ + + + + +-+ + + +-+ + +-+ + + + + + +-+ + + + +-+
| |     |     |     |   |   | | | | |   | |   | | |   | | | | | |   | | |   |
+-+-+ + +-+ +-+ + +-+-+-+ + + +-+ +-+ +-+ + + + +-+ +-+ + + +-+-+ +-+-+ + +-+
|     | |     | | | |   | | | |   |   |   | | | |   |   | |   |   | |   |   |
+ +-+-+ +-+ + +-+ + + + + +-+-+-+ +-+-+ +-+-+-+-+-+ +-+-+ +-+-+ + + +-+ + + +
| |     |   | |     | | | |     | |           |       |     | | |     | | | |
+ +-+ +-+-+ +-+-+ +-+ + +-+ +-+ + + +-+-+-+ +-+-+-+ +-+ + +-+ + +-+ + +-+ + +
| |       |   |       | | | |   | | |           |   |   |     |   | |   | | |
+-+ + + +-+ +-+-+ +-+-+ + + +-+ +-+-+ +-+ +-+ +-+-+-+ +-+ + + +-+-+-+-+-+-+ +
|   | | |   |         |   | |         |     |     |   |   | |   | |       | |
+-+ +-+ +-+ +-+ + + +-+ +-+-+-+-+ + +-+ + + + + +-+-+ +-+ + + +-+ +-+ +-+ +-+
|     |   | |   | |   |     |     |   | | | | |   |   |   | |           | | |
+ + + + +-+-+ + +-+ +-+-+-+-+ +-+ +-+-+-+-+ + + + + + + + + + +-+-+-+-+-+-+ +
  | | |     | | |         |   |           | | | | | | | | | |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
------- test 10 ----
38 100
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           |         | | |       |             |       |   |
+ + + +-+-+-+-+ + +-+-+-+-+-+ + +-+-+ + + + +-+-+-+-+ +-+ + + +-+ +-+ +-+ + +
| | |     |     |                 |       |     | |       | | |   | |       |
+ +-+ + +-+ +-+ + +-+-+-+ +-+ + +-+ +-+-+ + +-+-+ + + +-+ +-+ + + + + +-+ + +
|     |       | |       |   | |   |                 |   |   |   | |     | | |
+ + + + + +-+ + +-+ +-+-+-+-+-+-+-+ + + +-+ +-+ + + +-+-+ +-+ +-+-+ +-+ +-+ +
| | |   |     |         |   |       |             |   | |     | | | | |   | |
+-+ + +-+ +-+-+ + +-+-+ + +-+ +-+-+ + +-+-+-+-+ +-+-+ + + +-+-+ + + + + +-+-+
|   |   |     |   |   |           | | | |     | |   |                 |     |
+ +-+ + +-+ +-+ + + +-+-+-+ + + +-+-+-+ + +-+ +-+ +-+ + +-+-+-+-+-+-+-+ +-+-+
| |   | |       |         | | |                     | | |   | |   | |       |
+ +-+ + +-+ + + +-+ + + + + + + +-+ +-+-+ + + + + + +-+-+ +-+ + + + + +-+-+-+
| |   |                 | | |     |       |   | |     | | |             |   |
+ + + +-+ + +-+ + + + + +-+-+ + + + +-+-+ + +-+ + +-+ + + + +-+ +-+-+ + + + +
| | |   | |   | | | | | |   | | | | | |       | |   |           | |       | |
+-+ + + +-+-+-+-+ +-+ + + +-+-+ +-+ + +-+-+-+ +-+ + + + + +-+ +-+ + +-+-+-+-+
|   |     |   |   |   |     | |   |       |     |     |           |   | |   |
+-+-+ +-+ + +-+-+ +-+-+-+ +-+ + + + + +-+ + +-+-+-+-+ + +-+-+ + +-+ + + + + +
|     |       | |   |         |   |     | |         | |   |     |   |       |
+ +-+ + + +-+ + + +-+-+ +-+ +-+ +-+-+ + +-+ +-+ + + + +-+-+ + + + + +-+-+ + +
| |   | |           |     | |       |         | | |         | |   |         |
+ + +-+ + +-+ +-+ +-+ + +-+ +-+-+ + +-+ +-+-+ + + + +-+ + + + +-+ +-+ +-+-+-+
| | |   |   |                         |     |   | |   | | |         |     | |
+-+ +-+ + +-+ + + +-+-+-+-+-+ +-+ +-+-+-+ + + +-+ + +-+ +-+ + +-+ +-+-+ +-+ +
|       | |   |     |       |   |     | | | |   |     |     |   | |   | | | |
+ + +-+ + +-+ +-+ +-+ +-+-+-+ +-+ + +-+ + + + + +-+ + +-+ +-+ + + +-+ +-+ + +
| |   |   |     |   | | | | | |   |         | | | | |   |   |               |
+-+ + +-+ +-+ + +-+ + + + + + + + + +-+ + + +-+-+ +-+ + + + + + + + +-+ + +-+
|   |   | |       |               |   | | |       |   |   | | | |           |
+ + +-+-+ + + + + + + +-+ +-+ +-+ +-+ +-+ + + + +-+-+ +-+ +-+ +-+ + +-+ +-+-+
|       | |     | | |   |       |   |   | | | |     |       | |             |
+ + +-+ + +-+ + + + +-+ +-+-+-+ + +-+ +-+-+ +-+-+ + + + +-+ + + + + + + + +-+
|         |     | |   |   |   | |   |     |     | | | |   |   | | |   | |   |
+-+ +-+-+-+-+ + +-+ +-+ +-+ + +-+-+-+ + +-+-+ + +-+-+-+-+-+ + +-+-+ +-+-+ +-+
|             |   |         |     | |       | | |       | | |       |       |
+ + + + +-+ + + + + + +-+ +-+-+-+ + + +-+ + + +-+ +-+ + + +-+-+ + +-+ + +-+ +
| | | |   | | | | |     | | |   |   |   |   | | |                   | |     |
+ + +-+-+-+-+ +-+-+ + +-+ + +-+ + +-+ +-+ +-+ + + +-+ +-+-+ + + + +-+-+ + + +
| |     | | |     | |   |       |   |   | | |     | | |     |   | |   | |   |
+-+ +-+ + + + +-+ + + + + +-+-+-+ + +-+-+ + + +-+ + + + + +-+ + + + +-+-+-+-+
      |         | | | | |       |           |   |                     | |   |
+ + +-+ + + + +-+-+-+ +-+ + + +-+-+ + +-+ +-+-+ +-+-+ +-+ +-+ + +-+ + + + +-+
|     |   | |       |   | | |     | |   | |   |                   |   |     |
+-+ +-+ +-+-+ +-+-+-+ + + + +-+-+ +-+ +-+ + + +-+ + + +-+-+ + + +-+-+-+ +-+-+
|     |   |         | | |       |   |       |   | |     |           |   |   |
+ + + + + + + + +-+-+ +-+ + +-+-+ +-+-+ + +-+-+ + + + +-+ + + + + +-+ + + +-+
| | | | | | | |           | |         | |     | | | |   | | |         |   | |
+ + +-+ + + +-+ + +-+ +-+-+ +-+ + +-+-+-+-+ +-+ + + + +-+-+-+ + +-+ +-+ +-+ +
|     | |   | | |   | |   |   |         | |   | | | |       | |     |       |
+ + +-+ +-+-+ +-+ +-+ + +-+ +-+ +-+ +-+-+ + + +-+ + +-+-+-+-+-+-+ + +-+ + + +
|   |     |               | | | |         | | | |             |   |   | | | |
+ +-+-+-+-+ +-+ +-+ + + + +-+ +-+ + + + +-+-+ + + + + + + +-+ +-+ + +-+ +-+-+
|         | |     | | | |       | | | | | |       | |       | | | | |   |   |
+-+ +-+ + + + + +-+ +-+-+ +-+-+ + + + + + + +-+ +-+ + + + +-+-+ + + +-+ + + +
|   | | | |   | |             | |     |       |     | | |   |         |     |
+ + + +-+-+ + + +-+-+ + + + +-+ +-+ + + + + +-+-+ + + + + + +-+-+ + +-+-+ + +
|         | | |     | | | | |     | | |     |   | | | |       |   |         |
+ +-+ + +-+-+ + +-+-+ + + + + + +-+-+-+ +-+ + +-+-+ +-+ + + +-+ +-+-+ + +-+ +
|   | | | |   |   | | | | |           | |       | | |   | |   |   | |     | |
+ + + + + + + + +-+ + +-+-+ +-+ + + + +-+-+ + + + +-+-+-+ + +-+ +-+ +-+-+-+ +
| | | |           |     |     | | | |   | | | |   |     |     |           | |
+ +-+ +-+-+-+ +-+ +-+ +-+-+-+ +-+-+ + +-+ + +-+-+-+ +-+ +-+ + + + + +-+-+-+-+
| |             |   |     |     |   | |             |       |               |
+ +-+ +-+ + + +-+ + + + + +-+ +-+-+-+-+ +-+ +-+-+ +-+ +-+ + + + + + +-+ +-+ +
| |     | | |   | | | | | |       | | |   |   |         | | | | |       | | |
+ +-+ + +-+ + +-+-+ + + +-+-+ + + + + + +-+ +-+-+ + + +-+-+-+ +-+-+ +-+-+ + +
|   |   |   | |       | |   | |       | |               | |       |         |
+ +-+ +-+ + +-+ + +-+ +-+ +-+-+ + + +-+-+ + +-+-+ + +-+-+ +-+ +-+ + + +-+ + +
| |     |       | |             | |     | |     | |             |   |   | | |
+ +-+ + + +-+ + +-+ + + + + + + +-+-+ +-+ + +-+-+-+ + + + + + +-+-+-+ + + + +
|   | |   |   |       | | | | |   | |   | |     |   |     |           | | | |
+ + +-+ + + +-+ + +-+ +-+-+-+ + +-+ +-+ +-+ + + + + + + + + +-+ +-+ + + +-+ +
| |   | |   |   | | |                 |   |   | |   | | | |       |   |   | |
+-+ +-+-+ +-+ + +-+ + + + +-+ +-+ + +-+ +-+ +-+ +-+ + +-+-+ + + + + +-+ +-+ +
| | |       | |         | |     | |     |     |     |     |   | | |   |   | |
+ + +-+-+-+-+-+ +-+ + +-+-+-+ + + + + +-+-+ +-+ +-+-+-+ +-+ +-+ + +-+-+ + + +
|       | |     |   |       |   | | | |       |       |   |   | |   |   | | |
+-+ + + + +-+ + + + +-+ + +-+ +-+-+ +-+ + +-+-+ + + + +-+-+ +-+ +-+ + + + + +
|   |         | | |   | |                   |     |           |     |     | |
+-+ +-+-+ + + + +-+ + +-+ + + +-+ + +-+ + + + + +-+ + + + +-+ +-+ + + + + + +
|     |   | | | |         |     | |   |     | |   | | | | |       | | | |   |
+ + +-+ +-+-+-+ +-+ + +-+-+-+ + + +-+-+ +-+ + +-+ + + +-+-+-+-+ +-+-+-+-+ +-+
| |                 |       |   |               | | |   | | |   | |   |     |
+ + + + + +-+ + + + + +-+-+ + +-+ + + + +-+ + +-+ + +-+ + + + +-+ + +-+ + + +
| | |   |     |   | |   |       | |   |   | | |   |   |                 |   |
+ + + +-+-+ + + +-+-+ + + + +-+-+ +-+-+-+-+-+ +-+-+-+ +-+-+ + +-+-+-+ + +-+ +
| |     |   | | |     | |       |   | |     |           |             |   | |
+ +-+-+-+-+-+ + +-+ +-+ + + +-+ +-+ + + + + + +-+ +-+ + + + +-+-+ +-+ + + + +
|     |   |       | |   | |               |           | |           | |     |
+ + +-+ +-+ +-+ +-+ + + +-+ +-+ +-+ +-+ +-+-+-+ + +-+ + + + +-+-+ +-+ + + +-+
| |     |     |   | | |         |         |     |   | | | |     | | | |   | |
+ +-+ + +-+ + + + +-+ + +-+ + +-+ +-+ + +-+-+-+ + + + + +-+-+ + +-+ + +-+ + +
|   | |   | |   | |       | | |     | |       | | |         | |     |   |   |
+ + + + +-+ +-+ +-+ +-+ +-+ + +-+ +-+ + +-+-+-+ + + +-+ + + +-+ +-+ +-+ + + +
| |   | |     |   |   |   |         | |         | |   | | | | |   |   | |   |
+ +-+ + +-+ +-+-+ +-+ + + + + +-+ +-+ + +-+ + + +-+ + +-+ +-+ + +-+ + +-+ + +
| |           |     | | |   | |     | |     | |   | | |       |   |   | | | |
+ + + +-+ +-+ +-+ +-+ +-+ + +-+ + +-+ +-+-+ + +-+ + +-+ +-+ +-+-+ + +-+ +-+ +
| | |   |   |   | |   |   | |   |         | | |   |   | |       | | |     | |
+ + + + +-+ + + + + + +-+ + + +-+ + + +-+ + + + +-+ + + + + + + +-+-+ + +-+ +
| |   | |   | |   | | |     | |         | | |     | |           |         | |
+-+ + + + + + + + +-+ +-+ +-+-+-+-+ + +-+-+ +-+ +-+ + + + +-+ +-+ +-+-+ +-+ +
|   | |   |       |   | |   | | | | |     | |   |   |   |         |   |   | |
+ +-+-+ +-+ + + +-+ +-+ + +-+ + + + + +-+-+ + + +-+-+ + +-+ + +-+-+ + + +-+ +
| |       | | | |                   |         |   |   |   | |             | |
+ +-+-+-+ +-+ +-+ + + + + +-+-+-+-+ + + +-+ +-+-+-+ +-+ +-+-+ +-+ + + +-+-+-+
|   | |     | |   | | |       |   | | |   |   |           | | |     |       |
+ + + +-+ + + +-+-+-+-+-+ +-+ + +-+-+ +-+-+-+-+ +-+ + + + + +-+ + + + + +-+ +
|       | | |               |   | |           |     | | | |   | |     |   | |
+ +-+ +-+ + +-+ +-+-+ + + +-+ + + + + + + +-+ + +-+ +-+ +-+-+ + + + +-+ + +-+
| |         |   |     | | |   |   | | | |   | | |     | |             |     |
+-+ + + +-+ +-+ + +-+ +-+ + + + +-+ +-+ +-+-+ +-+ + + + + +-+ + + + + +-+ + +
|     | |     | |   |   | | | |             |   | |     |   | | | | |   | | |
+-+ + + + + + +-+ + + +-+ +-+ + + + +-+-+ +-+-+-+-+ + + + + +-+ + + +-+ + + +
|   |   | | | |     |   |   | | | | |       | |       | | | |     |   | | | |
+-+ +-+ + +-+-+ + +-+-+-+ + + + + + +-+ + +-+ +-+-+-+-+ +-+ +-+-+ +-+-+ +-+-+
|     |     |     |       | | | | |     |   | |   |   | |   |       |     | |
+ + +-+-+ + + +-+-+ + +-+ +-+ +-+-+ + +-+-+-+ +-+ + +-+-+ +-+ +-+ + + + +-+ +
|     |   |     | | |     |   |         |   |               | |   | |       |
+ + + +-+ + + + + +-+ + + +-+ + + + + +-+ +-+ + +-+ + + + +-+-+ + + +-+ + +-+
|             |   |   | | |   |   | |             | | | | | |   | |   | |   |
+-+ + + + +-+ +-+ +-+-+ +-+-+ +-+ +-+-+ +-+-+ + +-+-+-+-+-+ +-+-+-+ +-+ +-+-+
|               | |       |   |             |                     |   | | | |
+ + + + + +-+ +-+-+-+ + +-+ + + + + + + + + + +-+-+ + +-+-+-+ + +-+ + + + + +
| | | | |   |   |     |   | | | |   | |                   | | |   |         |
+-+-+ + +-+ + + +-+ + + + +-+-+-+ +-+-+ + +-+ +-+ + + +-+ + +-+-+ +-+ +-+-+-+
|   | | |     |     |               |       |   | | |   |                   |
+-+ +-+ + + +-+ + +-+-+ +-+ + +-+ + +-+ + +-+ +-+ +-+ + + +-+-+ +-+-+ + +-+-+
|       | |                   |             |   |     | |     |     | |     |
+ + + +-+ + +-+ +-+ +-+-+ +-+ +-+ + + + + + +-+-+-+ + +-+ + +-+ + +-+ +-+ + +
| | | |       | |     |   |         |   |   |     |     | |   | |   |   |   |
+ + + + + + + +-+ + +-+ +-+ +-+-+ + +-+ + +-+ +-+ +-+-+ + +-+ +-+ +-+-+ +-+ +
| |   | | | | |   | |   |   |           |             | |   |   |     |   | |
+ + +-+ +-+ +-+-+ +-+-+ + + + +-+ + +-+ +-+ + + + +-+ + + +-+-+ + +-+ +-+-+-+
|       |     |     |   | | | |   |   |   |   | |   | | |     |     | | | | |
+ + +-+ +-+ +-+ + +-+-+-+ +-+ +-+-+ +-+-+ + +-+-+-+ +-+ + + +-+ + + + + + + +
| | |     |   | |           | |     |             |   |     |   | | |       |
+ +-+ + +-+ + +-+ +-+-+ + + +-+-+ + + +-+ + + +-+-+ +-+-+-+ + + + + +-+ +-+ +
|       |       | |   |   |       | |       | | | |         | | | |         |
+ +-+ +-+-+ + + + + + +-+ + +-+ + + +-+ + +-+ + + +-+-+-+ + + +-+-+ + + +-+ +
|       |   | | | | |       |       |                 |   | |     | | |   | |
+ +-+ + + +-+ +-+-+-+ +-+ + + + + + +-+-+-+ + + + + +-+ +-+-+ + +-+ + +-+-+ +
| |   |               |   | | | | |     |     | |         | | |   |       | |
+-+-+ +-+ + + +-+ + +-+ + +-+ +-+ + +-+-+ +-+ + +-+ + +-+-+ +-+ + +-+ +-+ + +
|       |           |   |   |       |       | | |   | |       |     |   | | |
+-+ + +-+ +-+ + + +-+-+ + + + + + +-+-+ + + + + + +-+ + + + + + +-+ +-+-+ + +
|   |       |   | |       | | | |       |     | |   | | | |     |           |
+-+ + +-+ +-+ +-+-+-+-+ + +-+-+-+ +-+-+-+ +-+ + + +-+-+ + + +-+ +-+ + + + +-+
|   | |           |     |   | |             | |         |     |   | | | |   |
+ + +-+ + +-+ + + +-+-+ + +-+ + + + + +-+-+-+-+ + +-+-+-+-+ + + + +-+-+-+-+ +
| |   | | |     | |     |         | |   |               |   |     |     |   |
+-+ + + +-+ + +-+-+ + + + +-+ +-+-+ + +-+ + +-+ +-+ +-+ + +-+ +-+ + + + +-+-+
|   |     | | |       | | | | |   | |       |         |     |   |   |       |
+-+ + + + +-+-+ +-+ +-+-+-+ + + +-+ +-+ +-+ + + +-+-+ +-+ +-+-+-+ +-+-+ + +-+
    | | |     | |                 |   | | |   |   |   | |             |   | |
+-+-+ +-+-+ +-+ +-+ + + + + + +-+ +-+-+ + + + +-+ + + + + + +-+-+ +-+-+ + + +
|       | |   | |     | | | | |   |         |   |   |     |   |       | |   |
+ + + + + +-+ + + +-+ + + + + + + + + + +-+ + +-+-+-+ + +-+ +-+ + +-+ + + + +
| |   |     | | | | | | | |   | | | |     | |           | |   | |   | | | | |
+ +-+ + + +-+ + +-+ +-+-+ + + +-+ +-+ + +-+ +-+ + + + + + + +-+-+ + + + + + +
| |   |         |         | | |   | |     | |   | |   |   |       | |     | |
+ + + + + +-+ + + + + +-+-+ + + + + +-+ +-+-+ + +-+ + + + + +-+ + + +-+ +-+ +
| | | | | |   | | | | | |   | | | |               | | | |       |     | |   |
+-+ +-+-+-+ +-+-+ +-+-+ + + +-+ + + + + + +-+-+ + + +-+ + + + +-+ + + +-+-+ +
|             |     |       |   |   |     |     | |   | |   |   | | |   |   |
+-+ + + + +-+-+-+ + +-+ +-+ +-+ +-+-+-+ +-+ +-+ + + + + + + +-+-+-+ +-+ +-+-+
|   | | |       | | | | |   |       |   |         |       |       |   |     |
+-+ + +-+-+-+ +-+ +-+ +-+ + + +-+ +-+ + + + +-+ +-+ +-+ + +-+-+ +-+-+-+ +-+ +
|   | |         | |       | |   |   |     | |     | |           | |   |     |
+ + +-+-+ +-+ +-+-+ + + + + + +-+ + + + + + +-+ +-+-+ +-+-+-+ +-+ + +-+-+ +-+
| |   |   |   |         |   |     | | | |   |               |       |   |   |
+-+-+ + + +-+-+ + +-+-+-+ +-+-+-+ +-+-+-+ +-+ +-+ +-+ + +-+ + +-+-+ + +-+ + +
|       | |               |     |         |   |   | | |   | |     |       | |
+-+ + + + + + + + +-+ +-+ + + + + + + + +-+-+ +-+-+ + +-+-+-+-+ + + + + + +-+
|   |     | | | | |           | | | |   | |     |               | |   |     |
+ +-+ + + +-+ + +-+-+ + + + +-+-+ +-+ + + +-+ +-+-+-+ + +-+ +-+ +-+-+ +-+ + +
|       | |   |   |   | | |         | | |       | | |     |   |   |   |   | |
+ + + +-+ +-+ + + +-+ +-+ + +-+-+ +-+ + + + +-+ + + + + +-+ + + +-+-+ + +-+-+
|   |   |   |   | |   |           |   |   |   | |     |   | |       |       |
+ + + + + +-+ +-+ +-+ + + + +-+-+ + +-+-+ + +-+ +-+ +-+ +-+ +-+ +-+-+ + + +-+
| | | |   |   |       | |             |   | |         |   |       | | | |   |
+-+-+-+-+ +-+ +-+ + + +-+ + + +-+ +-+ +-+ +-+ + + + +-+ + + + + +-+ +-+-+ +-+
|       |           |       |   |   |   | |   | | |   | |   |     |   |     |
+-+-+-+ +-+ +-+ + +-+ +-+ +-+ +-+ +-+ +-+-+-+ + + +-+ + + + +-+ +-+ + +-+ + +
|           |   |   | |     |   |   |     | | |     | | | |   |     |   | | |
+-+-+-+-+-+ +-+ + + + + + +-+ +-+ +-+ + + + +-+ + +-+-+ +-+-+ +-+ + +-+-+-+-+
| |         |   |       |       |   | |   |   |                 | |         |
+ +-+ + + +-+ + +-+ + + + +-+ +-+-+-+-+-+-+ + + + +-+ + +-+ + + + +-+-+ + + +
|     | | |   | |     |   |             |   |       |   |   |   |   |   | | |
+-+ + +-+-+ +-+-+-+ + +-+ + + + +-+-+ + + + + + + + +-+-+ + + + +-+ +-+-+ + +
|     |       |     |   | | | |       | | | |           | | | |   | |       |
+-+ +-+ + + +-+-+ + + +-+ + + +-+ +-+-+-+-+ + +-+ +-+-+ +-+ + +-+-+ + +-+-+-+
|       |       | | |     |     |     |   |   |                 |           |
+ +-+-+ + + +-+ + + + +-+-+ +-+-+-+ +-+ +-+ + + + + +-+ + + + +-+ +-+ + +-+ +
| |     | | | |   | |   |         |       | | | |     |     |     |   |     |
+ +-+ +-+ + + + + +-+-+ + +-+ + + + +-+ +-+-+-+-+ + +-+-+ + + +-+-+ + + +-+ +
| |   |   |         |         | | | |           | |   |   | |     | |     | |
+-+-+ + + + + +-+ + + + + + + + +-+-+-+ +-+-+ +-+-+ + + + +-+ + + +-+-+ +-+ +
|                     | |     |   |       |           | | |     |   |       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

std::map看来可以被淘汰了?可以用vector来替代,而且更好 vector的优势在于内存连续,可以先std::sort,然后std::lower_bound,或者std::binary_search。而std::map,insert的时候,需要new出内存。 阅读详情

相关推荐

嘉立创EDA报错:元件引脚与焊盘未对应报错解决记录

原件引脚与焊盘未对应报错解决方法,一文总结!

2303_77013775的博客 1万+

USACO Section 2.4 Overfencing(权值相等的最短路 )

OverfencingKolstad and Schrijvers Farmer John went crazy and created a huge maze of fences out in a field. Happily, he left out two fence segments on the edges, and thus created two "exits" for ...

angtongyou1893的博客 219

【机器学习】Anaconda安装后打不开jupyter notebook(网页不自动跳出)

anaconda安装成功以后,jupyter notebook可以出现打开的路径,能够手动复制粘贴地址路径打开,却不能自动跳转到网页。解决的办法是在配置文件中加入指定的浏览器配置信息。

weixin_43416960的博客 4万+

Usaco 2.4Overfencing(BFS)

Overfencing PS:真想吐槽下,各种胡搞,幸亏在读入图的时候稍微剪了下,还好过了,之前无数TLE!!!!!!!!这题害我搞了好几天,好辛苦,求赞和评论~~~~~~ ———————————————————————————————————————————————————————————— Kolstad and Schrijvers Farmer John went crazy

crazy_石头的专栏 1105

DDPG算法实战:用Python一步步实现深度强化学习中的连续动作控制

本文详细介绍了DDPG算法在深度强化学习中的连续动作控制应用,通过Python和PyTorch实现从零构建智能体。内容涵盖环境搭建、网络架构设计、经验回放、OU噪声实现及训练流程优化,帮助开发者掌握DDPG在机械臂控制等场景的核心技术。

weixin_30335575的博客 415

手把手教你用Trae配置Python开发环境(含Claude 3.5代码生成实战)

本文详细介绍了如何使用字节跳动推出的Trae智能开发环境配置Python开发环境,并实战演示了Claude 3.5代码生成功能。从环境准备到项目初始化,再到AI辅助编码和调试优化,全面展示了Trae在提升开发效率方面的强大能力,特别适合Python开发者快速搭建项目和解决复杂问题。

weixin_28309571的博客 976

USACO 2.4 Overfencing 穿越栅栏

USACO 2.4 Overfencing 穿越栅栏 Overfencing Kolstad and Schrijvers Farmer John went crazy and created a huge maze of fences out in a field. Happily, he left out two fence segments on the edges, and thu...

NeWorldMaker 498

别再算错了!深入SAP FI后台,看懂外币清账时汇兑损益的自动计算逻辑

刚接手一家跨国企业的SAP财务模块优化项目时,我遇到了一个棘手案例:每月末外币清账产生的汇兑损益金额总是与财务团队的预期存在差异。最令人困惑的是,系统似乎"擅自"计算出了1989.11元的损益,而财务人员反复手工验算都无法复现这个数字。这让我意识到,要真正掌握SAP FI的外币处理能力,必须深入理解系统后台的汇兑损益计算逻辑——不是停留在操作层面,而是穿透到算法内核。这个过程的精妙之处在于,损益金额不是简单比较两个时点的市场汇率,而是反映业务执行全周期的汇率影响。:损益金额与手工计算不符。

weixin_32932149的博客 473

USACO2.1【bfs,排序,贪心,dfs,位运算】

前言 开始刷USACO的题了。 正题 刷前必备技能:OI常识,bfs,dfs,位运算,基础贪心,快速排序。 T1:城堡 TheCastleThe CastleTheCastle 评测记录: https://www.luogu.org/recordnew/lists?uid=52918&amp;pid=P1457 之前写过,详见: https://blog.csdn.net/Mr_wuyongc...

QuantAsk 542

音乐生成 - 使用LSTM或Transformer模型进行音乐生成,如MIDI音乐生成。

在本篇博客中,我们将介绍如何使用LSTM和Transformer模型生成MIDI音乐。我们将首先概述音乐生成的一般流程,然后深入了解LSTM和Transformer模型的特点和实现。最后,我们将通过Python代码演示如何使用这两种模型生成MIDI音乐。

斌擎科技 1720

权重衰减weight_decay参数从入门到精通

Weight Decay是一个正则化技术,作用是**抑制模型的过拟合**,以此来提高模型的泛化性。 目前网上对于Weight Decay的讲解都比较泛,都是短短的几句话,但对于其原理、实现方式大多就没有讲解清楚,本文将会逐步解释weight decay机制。

iioSnail的博客 4万+

USACO section 1.4.2 The Clocks

USACO section 1.4.2 The Clocks 1. 这道题有好多种解法,看NOCOW,用枚举,DFS,BFS都能求解。我看到这个题的时候,连最基本的枚举怎么做都想不出来,差距呐。。。; 2. 我挑选了解题报告中代码最短的读懂然后写出来了: /...

dayong9372的博客 284

无人机视觉锁定与目标跟踪技术深度解析(含完整代码)

本文介绍了无人机视觉锁定系统的核心技术实现,包括系统架构、目标检测与跟踪算法。系统采用YOLOv5进行初始目标检测,结合手动框选作为备选方案。在跟踪环节对比了KCF、CSRT等传统方法和SiamFC等深度学习算法,最终选用CSRT作为CPU平台最优方案。文章详细解析了相关滤波跟踪的数学原理,并提供了目标检测器和跟踪器的Python实现代码。该系统能有效处理目标遮挡、光照变化等挑战,为无人机自主跟踪提供了实用解决方案。

电脑管家 686

USACO Section 5.4 Betsy's Tour - 搜索剪枝

这道题我一看就觉得是搜~~~最裸的方法是DFS不断找路径了...我想到的剪枝是说一个路径这么走过去..将一个区域圈出来了.那么继续往后搜怎么也不可能满足题目要求走遍所有点了...所以我就在每次走了一步后..对图进行一次BFS...若得到的连在一起的未拓展面积等于理论上的...才继续往下搜..否则就剪枝,立马return...结果交上去过了6个点..第6个点还是0.1秒过的..结果第七个还是过不去.

zzyzzy12 1564

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

[USACO Training] Section 1.4

这一章的主题是枚举。 搜索 时间 空间 何时使用 DFS O(c^k) O(k) 必须搜索整棵树,知道解所在的层数,或者不需要层次最浅的解 BFS O(c^d) O(c^d) 知道解所在的层次很浅,或者需要最浅的解 DFS+ID O(c^d) O(d) 想要BFS,却没有足够的空间,并且能承受以时间换空间 c是每层做出的选择的数目 d是解的深度 k是搜索的深度 d <= k

chrt's blog 830

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

USACO training chapter1 入门/section1.5

USACO training chapter1 入门/section1.5Arithmetic ProgressionsMother's Milk 简单的搜索入门,只有两题,都可以用深搜来做,第二题可广搜,但是代码很烦,用dfs简单点。 Arithmetic Progressions 先枚举公差,然后枚举起点。 貌似可以证明公差只需要+4的枚举。 注意枚举范围,否则会很慢。 #include &l...

一个菜的不行的人的博客 324

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

[USACO Training] Section 2.4

8月份的时候计划做完Section 1 ~ 2。但是暑假结束的时候Section 2.4还差3道题,就搁置了。这两天做了一下。 本节以图论为主,另有一道有趣的“分数转十进制小数”。

chrt's blog 543

[题目] Section 2.1 The Castle(USACO)

[题目] Section2.1 The Castle [题意] 城堡由一个个的房间组成,有的房间之间存在墙,有的房间之间不存在墙。不存在墙的房间看作一个房间。给出这个城堡的地图,你的任务是算出房间数、最大的房间的大小、推倒一个墙之后最大的房间大小、要推倒的那面墙的位置。其中这个地图的表示方式有点奇葩。。1表示在西面有墙,2表示在北面有墙,4表示在东面有墙,8表示在南面有墙,而用他们的和表示这个房

MasonChen的专栏 802

USACO Section 2.4 Overfencing - 略坑爹的输入..再一个函数递归来DFS要慎用.

题目很简单了..从每个出口做一次搜索~~边遍历边判断更新赋值...最后扫描一次全图..找到值最大了就是答案了...     这个输入阿~~会有多余的空格~~也会有本来是一行都是空的~~结果打了两个空格就换行了~~~坑爹啊~~输入的时候又不能用gets...getline不知道用...就各种判断硬是用scanf完成了输入...      还有开始时用函数递归来DFS...结果超时了~~似乎是跑了

zzyzzy12 1580

USACO Section2.1 The Castle

The Castle IOI'94 - Day 1 In a stroke of luck almost beyond imagination, Farmer John wassent a ticket to the Irish Sweepstakes (really a lottery) for hisbirthday. This ticket turned out to have on

287

USACO SECTION 1.4 The Clocks

Arithmetic Progressions An arithmetic progression is a sequence of the form a, a+b, a+2b, ..., a+nb where n=0,1,2,3,... . For this problem, a is a non-negative integer and b is a positive integer.

106

Usaco Training Section 5.4 Telecowmunication

一道最小割点集的题目。因为本人比较菜,一开始没想到拆点,没做出来。后来看了题解,才知道拆点做挺方便的 #include&lt;bits/stdc++.h&gt; #define ll long long #define ull unsigned long long #define inf 1&lt;&lt;29 #define mp make_pair #define pii pair&l...

Monster的博客 275

USACO Section 1.4 Mother's Milk 搜索

这道题是一个让人做完觉得很爽的搜索题,可以用深搜也可以用宽搜。 相对来说,深搜的代码量稍微小一点。 搜索策略就是模拟倒来倒去的过程,并且出现重复的没有意义。 BFS版本: 我是人工写了个队列,这样比STL中的快一点 /* ID: sdj22251 PROG: calfflac LANG: C++ */ #include #include #include #include #inclu

水 1061

[USACO Training] Section 2.1

这一章介绍了图论中的基本概念、Flood Fill算法。 题目涉及到BFS、枚举、数论和贪心。 Hamming Codes一题用贪心算法通过了所有测试点,然而对于其正确性存疑。还没有对拍,有空来搞。如果您找到反例或者能给出证明,请留言,欢迎讨论。

chrt's blog 586

USACO Section 2.1 Healthy Holsteins

dfs,好像有人说过其实搜索就是枚举,这下领会到了 其实bfs应该更好的吧 1 /* ID:linyvxi1 2 PROB:holstein 3 LANG:C++ 4 */ 5 #include <stdio.h> 6 int v[26]; 7 typedef struct Vit{ 8 int num[26]; 9 }Vit;10 Vit vit[16]...

weixin_34250434的博客 87
上一篇: USACO section 2.4 The Tamworth Two(算模拟吧)
下一篇: USACO section 2.4 Cow Tours(并查集+最短路)
剑不飞
博客等级 码龄15年 86粉丝 505原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值