DCEPCA02  Ant Colony Optimization
Ants are known to move in groups and in perfect order. However, in our problem the ants can move only in directions Left(L), Right(R), Up(U), Down(D). The place is a rectangular grid. There lives 2 types of ants : Type A and Type B. Each ant type has its own queen ant which defines the 2 directions at which their type of ants can reproduce ants.
A starting cell is given where one ant of each type is standing (A and B). When the process begins, each type of ant produces 4 ants, 2 ants of their type in the 2 directions (1 ant per direction) specified by their queen ant and 2 ants of the other type in the remaining 2 directions. So if queen ant of type A says LR and queen ant of type B says UD then A ant produces new type A ants at left cell and right cell and new type B ants at up cell and down cell of the original cell. Similarly, type B ant produces 2 new type A ants in left and right cell and 2 new type B ants in up cell and down cell. The ants produced again reproduce more ants at their adjacent cells according to the same directions given by the their queen ant.
Reproducing ants at adjacent cells take 1 time unit. You need to find the sum of the minimum time in which type A ant reaches the endpoint and the minimum time in which type B ant reaches the endpoint. If any type of ant cannot reach endpoint, the answer is 1.
Constraints
T <= 10
0 < M <= 500
0 < N <= 500
0 <= SX, EX < M
0 <= SY, EY < N
Input
T denotes the number of testcases.
Each testcase consists of 4 lines.
First line gives M , N which is the size of grid
Second line gives starting cell cordinates. SX , SY
Third line gives endpoint cell cordinates EX , EY
Fourth line gives a permutation of LRUD denoting the directions provided by queen ant to move. The first two characters of the string gives the directions of queen ant type A and last two characters gives direction of queen ant type B.
Output
Print T lines each giving the minimum time in which ant of both types can reach the ending cell for each testcase ie. Find sum of (minimum time at which A type ant reaches endpoint + minimum time at which B type ant reaches endpoint)
Example
Input:
3
5 5
1 1
3 4
LRUD
2 4
0 2
0 3
RULD
2 4
0 2
1 1
URDL
Output:
10
1
6Explanation:
TestCase 1 : Minimum time at which A type ant reaches end point = 5
Minimum time at which B type ant reaches endpoint = 5
TestCase 2 : B cannot reach endpoint. Hence answer is 1.
TestCase 3 : Minimum time at which A type ant reaches end point = 4
Minimum time at which B type ant reaches endpoint = 2
hide comments
hodobox:
20160620 10:27:20
Numbering columns left to right 0 through N1 and rows top to bottom 0 through M1, moving 'up' from (x,y) > (x1,y), 'down' = (x+1,y), 'left' = (x,y1), 'right' = (x,y+1). 

ashok choudhary:
20150607 11:51:04
problem statement is not clear. Test cases are not helpful @dce coders. 

Andy Y.F. Huang:
20130426 02:14:20
Moving UP from (x,y) is (x,y1) and moving DOWN from (x,y) is (x,y+1).


(Tjandra Satria Gunawan)(æ›¾æ¯…æ˜†):
20130102 15:28:43
Can anyone explain why "TestCase 2: B cannot reach endpoint. Hence answer is 1"? 

Ehor Nechiporenko:
20121211 15:53:56
@Aman, the same as in my algo.


Aman Gupta:
20121211 15:05:37
Ok, someone please tell me how the answer for Minimum point at which type A ant can reach the endpoint is 4, isn't it 2? 0,2 (A) > 0,1 (B) > 1,1(A) , or have I understood the question wrong 

Ehor Nechiporenko:
20121209 20:56:16
I misunderstood the problem. Could you clarify it. On my algo, for second test:

Added by:  dce coders 
Date:  20121203 
Time limit:  1s 
Source limit:  50000B 
Memory limit:  1536MB 
Cluster:  Cube (Intel G860) 
Languages:  C C++ 4.3.2 CPP JAVA 
Resource:  Own Problem 