Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

This challenge originated with the 1999 ACM Programming Contest World Finals. The core of the problem is this: Take a honeycomb, with one cell arbitrarily labeled 1 with the surrounding cells labeled clockwise in the following fashion:

      __    __    __    __       
     __\ /__\ /__\  /__\  /__    
 __/  \__/  \__/53\__/  \__/  \__
/  \__/  \__/52\__/54\__/  \__/  \
\__/  \__/51\__/31\__/55\__/  \__/
/  \__/50\__/30\__/32\__/56\__/  \
\__/49\__/29\__/15\__/33\__/57\__/
/  \__/28\__/14\__/16\__/34\__/  \
\__/48\__/13\__/ 5\__/17\__/58\__/
/  \__/27\__/ 4\__/ 6\__/35\__/  \
\__/47\__/12\__/ 1\__/18\__/59\__/
/  \__/26\__/ 3\__/ 7\__/36\__/  \
\__/46\__/11\__/ 2\__/19\__/60\__/
/  \__/25\__/10\__/ 8\__/37\__/  \
\__/45\__/24\__/ 9\__/20\__/61\__/
/  \__/44\__/23\__/21\__/38\__/  \
\__/70\__/43\__/22\__/39\__/62\__/
/  \__/69\__/42\__/40\__/63\__/  \
\__/  \__/68\__/41\__/64\__/  \__/
/  \__/  \__/67\__/65\__/  \__/  \
\__/  \__/  \__/66\__/  \__/  \__/
/__\  /__\  /__\__/__\  /__\   

Design a program that finds the shortest distance between any two cells. For example, the distance between cells 19 and 30 is 5.

The time complexity of this solution is O(1), assuming n is the number of cells.

To try it out:

Hive.len_shortest_path(cell1, cell2)

hive_spec.rb includes complete test coverage and shows how to use all of the methods.

About

This is a constant time solution to a shortest path problem that originally appeared in the ACM Programming Contest World Finals

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages