Cody

# Problem 1903. GJam 2014 China Rd A: Maze with a Left Hand Rule

Solution 326370

Submitted on 1 Oct 2013 by Paul Berglund
• Size: 174
• This is the leading solution.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Pass
%% tic zm=[0 1 ;1 0 ]; zsf=[1 1 2 2 ]; vexp=''; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

2   Pass
%% zm=[0 1 1 0 1 ;0 0 0 0 0 ;0 0 0 1 0 ;0 1 1 1 0 ;0 0 0 1 0 ]; zsf=[1 1 5 3 ]; vexp='SEEENSESSSNNNWWSWWSSEE'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

3   Pass
%% zm=[0 0 0 ;0 1 0 ;0 0 0 ]; zsf=[1 1 3 3 ]; vexp='EESS'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

4   Pass
%% zm=[0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ]; zsf=[1 1 2 2 ]; vexp=''; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

5   Pass
%% zm=[0 1 0 1 0 1 0 1 ;0 0 0 0 0 0 0 0 ;1 1 1 1 1 1 1 0 ;0 0 0 0 0 0 0 0 ;0 1 0 1 0 1 0 1 ;0 1 1 1 1 1 1 1 ;0 1 0 1 0 1 0 1 ;0 0 0 0 0 0 0 0 ]; zsf=[1 1 8 8 ]; vexp='SEENSEENSEENSESSWSNWWSNWWSNWWSSSSEENSEENSEENSE'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

6   Pass
%% zm=[0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ]; zsf=[1 10 1 4 ]; vexp='SSSSSSSSSWWWWWWWWWNNNNNNNNNEEE'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

7   Pass
%% zm=[0 0 0 0 0 0 0 0 0 1 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ]; zsf=[1 1 3 1 ]; vexp='EEEEEEEESESSSSSSSSWWWWWWWWWNNNNNNN'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

8   Pass
%% zm=[0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 1 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ]; zsf=[1 1 7 1 ]; vexp='EEEEEEEEESSSSSSSSSWWWWWWWWWNNN'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

9   Pass
%% zm=[0 0 0 0 0 0 0 1 0 0 ;0 0 0 1 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 1 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ]; zsf=[1 10 1 4 ]; vexp='SSSSSSSSSWWWWWWWWWNNNNNNNNNEEE'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

10   Pass
%% zm=[0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 1 0 0 0 ;1 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 1 0 0 0 0 0 0 0 1 ;0 0 0 1 0 0 0 0 0 0 ;0 1 0 0 1 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ]; zsf=[10 1 10 3 ]; vexp='NNNNNENNWNNEEEEEEEEESSSSSWSSESSWWWWWWW'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

11   Pass
%% zm=[0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 1 0 0 0 0 1 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ]; zsf=[1 10 1 4 ]; vexp='SSSSSSSSSWWWWWWWWWNNNNNNNNNEEE'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

12   Pass
%% zm=[0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 1 ;0 0 0 0 0 0 0 0 0 0 ;0 1 0 0 0 0 0 0 0 0 ;0 0 0 0 0 1 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 1 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 1 0 0 0 0 0 0 ]; zsf=[10 1 10 2 ]; vexp='NNNNNNNNNEEEEEEEEESWSSESSSSSSWWWWWNWWSW'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

13   Pass
%% zm=[0 0 0 1 0 0 0 0 0 0 ;0 0 1 0 0 0 0 0 1 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 1 1 0 0 0 0 1 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ]; zsf=[10 10 1 10 ]; vexp='WWWWWWWWWNNNNNNNNNEEWSSEENENEEEEE'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

14   Pass
%% zm=[0 0 0 0 0 0 0 0 0 0 ;0 0 1 0 0 0 0 0 0 0 ;0 1 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 1 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 1 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ]; zsf=[10 10 5 10 ]; vexp='WWWWWWWWWNNNNNNNNNEEEEEEEEESSSS'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

15   Pass
%% zm=[0 1 0 0 0 0 0 0 0 0 ;0 0 0 0 1 0 1 0 0 0 ;0 0 0 0 0 1 0 1 0 1 ;0 0 0 0 1 0 0 0 0 0 ;0 1 0 0 0 0 0 0 0 0 ;0 0 0 1 0 0 0 0 1 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 1 0 0 0 0 0 0 1 ;0 0 0 1 0 0 0 0 0 0 ;1 0 0 0 0 0 0 0 0 0 ]; zsf=[1 1 9 1 ]; vexp='SEENEEEEEEESWSSESSSWSSESWWWWWWWWNW'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

16   Pass
%% zm=[0 0 1 0 0 0 0 0 1 1 ;0 1 0 0 0 1 0 1 1 0 ;0 0 0 1 0 1 0 1 0 1 ;0 0 1 0 1 0 1 0 0 1 ;0 0 0 1 0 0 0 0 0 1 ;0 1 0 0 1 0 0 1 1 1 ;0 0 0 1 0 1 0 0 0 1 ;0 1 0 0 0 1 0 0 0 0 ;1 0 0 1 0 0 1 0 0 0 ;0 1 0 1 1 0 0 0 0 1 ]; zsf=[10 1 9 6 ]; vexp=''; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

17   Pass
%% zm=[0 1 0 1 0 0 0 0 0 0 ;0 1 0 0 0 0 1 0 0 0 ;1 0 0 1 0 0 1 0 0 0 ;1 0 0 1 1 0 0 0 0 0 ;0 1 1 0 1 0 1 1 1 0 ;1 1 1 0 0 0 0 0 0 0 ;1 0 0 0 1 0 1 0 0 0 ;1 1 1 1 0 1 0 0 1 0 ;1 1 0 1 1 0 1 1 1 1 ;0 1 1 1 1 0 1 1 1 0 ]; zsf=[1 1 10 6 ]; vexp=''; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

18   Pass
%% zm=[0 1 0 0 0 0 0 0 1 1 ;1 0 0 1 1 0 0 1 0 1 ;0 0 0 1 0 0 0 0 1 0 ;0 0 0 0 1 0 0 0 0 1 ;0 0 1 0 0 1 0 0 0 0 ;0 0 1 0 0 0 1 0 0 0 ;0 0 1 1 1 1 1 1 0 0 ;1 0 0 0 1 0 1 1 1 0 ;1 0 0 0 1 1 0 1 1 0 ;0 0 0 0 0 0 0 0 0 0 ]; zsf=[10 10 3 6 ]; vexp=''; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

19   Pass
%% zm=[0 0 1 0 0 0 0 0 0 0 ;0 0 0 0 0 0 1 0 0 0 ;1 0 0 0 0 0 0 0 0 0 ;1 0 0 1 0 0 0 0 0 0 ;0 1 0 0 0 0 0 0 0 0 ;0 0 1 0 1 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 1 0 0 ;0 0 0 0 0 0 0 1 0 0 ]; zsf=[10 1 10 3 ]; vexp='NNNNNSESEENNWNWNNWNESEENEEEEEESSSSSSSSSWNNWWSSWWWW'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

20   Pass
%% zm=[0 0 0 1 0 1 0 0 0 0 ;0 0 0 0 0 0 0 1 0 0 ;0 0 0 0 1 0 0 0 0 1 ;1 1 0 0 0 0 0 0 0 0 ;0 0 0 0 0 1 0 0 0 1 ;0 0 0 0 0 0 0 0 1 0 ;0 0 0 0 0 0 0 1 0 1 ;0 0 0 0 1 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 1 0 ]; zsf=[1 1 5 3 ]; vexp='EESEENSEENEEESWSSEWSWSWSSEENSESSNWWSWWWWWWWNNNNNEE'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

21   Pass
%% zm=[0 0 0 0 0 0 0 0 1 1 ;0 1 0 0 0 0 0 1 0 0 ;0 0 0 1 0 0 1 1 0 0 ;0 0 0 0 0 1 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 1 1 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 1 1 0 0 ;0 0 0 0 1 0 0 0 0 0 ]; zsf=[10 10 8 10 ]; vexp='WWWWNWWSWWWNNNNNNNNNEEEEEEEWSWSWSSEENEENNESSSSWWSSEE'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

22   Pass
%% zm=[0 0 0 0 1 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;1 1 0 0 0 0 0 0 0 0 ;1 0 0 0 0 1 0 0 0 0 ;0 0 0 0 0 0 0 1 1 0 ;0 0 0 0 0 0 1 0 0 1 ;0 0 0 0 0 0 0 0 0 0 ;0 1 0 0 0 1 0 0 0 0 ;1 0 1 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ]; zsf=[10 1 10 10 ]; vexp='ENSEENNWNWWSNNNENENNWWNEEESEENEEEESSSSNWWWSWSSEENESESSS'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

23   Pass
%% zm=[0 0 0 0 1 0 0 0 0 0 ;1 1 1 0 0 0 1 0 0 0 ;0 0 1 1 1 0 1 0 0 0 ;0 0 0 1 1 0 0 0 0 0 ;0 0 1 0 0 0 0 0 0 1 ;0 0 0 0 0 0 0 0 0 0 ;0 1 0 0 0 0 0 0 1 0 ;0 0 0 1 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 1 0 0 0 0 0 0 0 ]; zsf=[10 10 6 10 ]; vexp='WWWWWWNWWSWNNNNNNNESEWSSEENEENNNWWNWWWEEESEENEEEESSSWSSE'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

24   Pass
%% zm=[0 0 0 1 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 1 0 ;0 0 0 0 0 0 1 0 0 0 ;0 0 0 0 0 1 1 0 0 1 ;0 0 0 0 0 0 0 1 0 0 ;1 0 0 0 0 1 0 0 1 0 ;0 0 0 0 0 0 0 0 0 1 ;0 0 0 1 1 0 1 0 0 0 ;0 1 1 1 0 0 0 1 0 0 ;0 0 0 0 1 0 1 0 0 0 ]; zsf=[1 10 6 2 ]; vexp='SSWSSESNWNWNNWWSWSSEESESESESSWWENNWNWWSSEWSNWENNWWWSWWSSEEEWWWNNNEN'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

25   Pass
%% zm=[0 0 0 0 0 0 1 0 0 0 ;0 0 0 1 0 1 0 0 0 0 ;0 0 0 0 0 0 1 0 0 0 ;0 0 0 0 0 1 0 0 0 0 ;1 1 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 1 0 1 0 ;0 0 0 0 0 0 0 1 1 0 ;1 1 0 0 0 1 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 1 0 0 0 0 0 0 0 0 ]; zsf=[1 10 2 8 ]; vexp='SSSSSSSSSWWWWWWWNWWSNEENNWWNEENNWWNNNEEEEEWSSEWSSEENENN'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

26   Pass
%% zm=[1 0 0 0 0 0 0 0 0 0 ;0 0 0 1 0 0 1 0 0 0 ;1 0 0 0 0 0 0 0 1 0 ;0 0 1 1 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 1 ;1 0 0 0 1 0 0 0 0 0 ;0 0 0 1 0 0 0 0 1 0 ;0 0 1 0 0 1 0 0 0 0 ;0 0 0 0 0 1 0 1 0 0 ;0 0 1 0 0 0 1 0 1 0 ]; zsf=[1 10 1 6 ]; vexp='SSSWSSESSSSNWNWWSNNWWSSSEWWNWWSWNNNENNWNENNWENEEEE'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

27   Pass
%% zm=[0 0 0 0 0 0 1 0 0 0 ;0 0 0 0 0 0 1 0 1 0 ;0 0 0 0 0 0 0 0 1 0 ;1 1 0 0 0 0 0 0 0 0 ;0 0 1 0 0 0 1 0 0 0 ;1 0 0 1 0 0 0 0 0 0 ;1 1 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 1 0 ;0 0 0 0 1 0 0 0 1 0 ]; zsf=[1 1 7 4 ]; vexp='EEEEESSEENNEESSSSSSSSSNNWWSSWWNWWSWWWNNEENNWNWESESE'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

28   Pass
%% zm=[0 1 0 0 1 1 1 0 1 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 1 0 0 0 0 1 0 0 ;0 0 0 1 1 1 0 0 0 0 ;1 1 1 0 0 0 0 0 1 0 ;0 1 0 0 0 1 0 0 0 1 ;0 0 1 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 0 0 0 1 0 0 0 0 ;0 0 0 1 0 0 0 0 0 0 ]; zsf=[10 1 10 5 ]; vexp='NNNNSESEENNWENEEENNWWWNWWSSEWWNNNSEENESEEEENSEENSSSSNWWSSESESSSWWWWW'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

29   Pass
%% zm=[0 0 0 0 0 0 1 1 0 1 ;0 0 1 0 0 0 0 0 0 0 ;0 1 0 1 0 0 0 0 1 0 ;0 0 0 0 1 0 0 0 0 0 ;0 1 0 0 0 0 0 0 0 1 ;0 0 0 0 1 0 0 1 0 0 ;0 0 0 0 1 0 0 1 0 1 ;0 0 0 0 0 1 0 0 1 0 ;0 0 0 0 0 1 1 0 0 0 ;0 0 1 0 0 0 1 0 0 0 ]; zsf=[10 1 9 2 ]; vexp='NNNNNNNNNEEEEESEEENSESSWSSEWSNNWWSSSESEENSSWWNNWNWNNWWSSSESSEWWNWW'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp))

30   Pass
%% zm=[0 0 0 1 0 0 1 0 0 0 ;1 0 0 0 0 1 1 0 0 1 ;0 0 1 1 0 0 0 0 1 0 ;0 1 0 1 0 0 0 0 1 0 ;1 1 0 0 0 0 0 0 0 0 ;1 1 0 0 0 0 0 0 0 0 ;0 0 0 0 0 0 0 0 0 0 ;0 0 1 0 0 0 0 0 0 0 ;1 0 0 0 1 0 0 0 0 1 ;0 0 0 0 0 1 0 1 0 0 ]; zsf=[10 1 8 4 ]; vexp='ENNWNEENNNSEENNNWWWSWSNENNWEESEENEWSSEEENNEEWSWSSSEENNSSSSSWSSEWNWWSNWNWW'; vstr=Maze_CH(zm,zsf); assert(strcmp(vstr,vexp)) toc

Elapsed time is 2.027056 seconds.

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!