CF413E.Maze 2D

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

The last product of the R2 company in the 2D games' field is a new revolutionary algorithm of searching for the shortest path in a 2×n2×n maze.

Imagine a maze that looks like a 2×n2×n rectangle, divided into unit squares. Each unit square is either an empty cell or an obstacle. In one unit of time, a person can move from an empty cell of the maze to any side-adjacent empty cell. The shortest path problem is formulated as follows. Given two free maze cells, you need to determine the minimum time required to go from one cell to the other.

Unfortunately, the developed algorithm works well for only one request for finding the shortest path, in practice such requests occur quite often. You, as the chief R2 programmer, are commissioned to optimize the algorithm to find the shortest path. Write a program that will effectively respond to multiple requests to find the shortest path in a 2×n2×n maze.

输入格式

The first line contains two integers, nn and mm (1<=n<=2105; 1<=m<=2105)(1<=n<=2·10^{5}; 1<=m<=2·10^{5}) — the width of the maze and the number of queries, correspondingly. Next two lines contain the maze. Each line contains nn characters, each character equals either '.' (empty cell), or 'X' (obstacle).

Each of the next mm lines contains two integers viv_{i} and uiu_{i} (1<=vi,ui<=2n)(1<=v_{i},u_{i}<=2n) — the description of the ii -th request. Numbers viv_{i} , uiu_{i} mean that you need to print the value of the shortest path from the cell of the maze number viv_{i} to the cell number uiu_{i} . We assume that the cells of the first line of the maze are numbered from 11 to nn , from left to right, and the cells of the second line are numbered from n+1n+1 to 2n2n from left to right. It is guaranteed that both given cells are empty.

输出格式

Print mm lines. In the ii -th line print the answer to the ii -th request — either the size of the shortest path or -1, if we can't reach the second cell from the first one.

输入输出样例

  • 输入#1

    4 7
    .X..
    ...X
    5 1
    1 3
    7 7
    1 4
    6 1
    4 7
    5 7
    

    输出#1

    1
    4
    0
    5
    2
    2
    2
    
  • 输入#2

    10 3
    X...X..X..
    ..X...X..X
    11 7
    7 18
    18 10
    

    输出#2

    9
    -1
    3
    
首页