Source: http://user.it.uu.se/~yi/courses/rts/dvp-rts-07/notes/RT prog 1.pdf