הנסיך מקפץ על גגות העיר. מטרתו למצוא את הרשע ולהילחם בו, על מנת להציל את הנסיכה. מפת הגבהים של גגות העיר מיוצגת על-ידי מערך דו-ממדי ריבועי drm המכיל מספרים שלמים אי-שליליים. המיקום של הרשע מסומן על-ידי המספר -1 (זהו התא היחיד שמכיל מספר שלילי).
בכל צעד הנסיך יכול להתקדם למשבצת סמוכה: למעלה, למטה, שמאלה או ימינה (לא באלכסון). אם המשבצת הסמוכה נמצאת באותו גובה - יכול הנסיך ללכת אליה. בנוסף, יכול הנסיך לטפס על גג בגובה יחידה אחת, או לרדת מגג בגובה יחידה אחת או שתיים. אם הוא מנסה לטפס לגובה של יותר מיחידה אחת או לרדת לגובה של יותר משתי יחידות, הוא נופל מיד. כשהנסיך נמצא על גג סמוך לרשע (אחד מארבעת שכניו) הוא יכול לקפוץ אליו ללא קשר להפרש הגבהים בינו לבין הרשע.
האינדקסיםi ו-j מציינים את אינדקס השורה והעמודה בהתאמה של התא בו נמצא הנסיך בתחילת המסלול.
יש להחזיר את מספר התאים במסלול הקצר ביותר או -1 אם אין חוקי כזה. לאחר ריצת השיטה על המפה (המערך) להישאר ללא שינוי.
לדוגמה, עבור המפה הבאה:
| 0 | 1 | 2 | 3 | 4 | |
| 0 | 2 | 0 | 1 | 2 | 3 |
| 1 | 2 | 3 | 5 | 5 | 4 |
| 2 | 8 | -1 | 6 | 8 | 7 |
| 3 | 3 | 4 | 7 | 2 | 4 |
| 4 | 2 | 4 | 3 | 1 | 2 |
הרשע נמצא בתא בשורה 2 ובעמודה 1.
אם הנסיך נמצא בתא (0,0), קיימים שלושה מסלולים המובילים אותו לרשע. הם מסומנים במפות להלן:
| 2 | 0 | 1 | 2 | 3 |
| 2 | 3 | 5 | 5 | 4 |
| 8 | -1 | 6 | 8 | 7 |
| 3 | 4 | 7 | 2 | 4 |
| 2 | 4 | 3 | 1 | 2 |
מסלול באורך 10
| 2 | 0 | 1 | 2 | 3 |
| 2 | 3 | 5 | 5 | 4 |
| 8 | -1 | 6 | 8 | 7 |
| 3 | 4 | 7 | 2 | 4 |
| 2 | 4 | 3 | 1 | 2 |
מסלול באורך 10
| 2 | 0 | 1 | 2 | 3 |
| 2 | 3 | 5 | 5 | 4 |
| 8 | -1 | 6 | 8 | 7 |
| 3 | 4 | 7 | 2 | 4 |
| 2 | 4 | 3 | 1 | 2 |
מסלול באורך 4
לכן יוחזר הערך 4.
באותה מפה, אם הנסיך נמצא בתא (4, 4) אין מסלול חוקי בו הוא יכול ללכת עד הרשע ולכן יוחזר הערך -1.
השיטה צריכה להיות רקורסיבית ללא שימוש בלולאות כלל. כך גם כל שיטות העזר (אם תכתבו) לא יכולות להכיל לולאות.
מותר לשנות את המערך drm במהלך השיטה, אבל חובה להחזיר אותו למצבו ההתחלתי בסופה.
drm = [[2, 0, 1, 2, 3], [2, 3, 5, 5, 4], [8, -1, 6, 8, 7], [3, 4, 7, 2, 4], [2, 4, 3, 1, 2]], i = 0, j = 0
4
הסבר: המסלול הקצר ביותר הינו 4.
drm = [[2, 0, 1, 2, 3], [2, 3, 5, 5, 4], [8, -1, 6, 8, 7], [3, 4, 7, 2, 4], [2, 4, 3, 1, 2]], i = 4, j = 4
-1
הסבר: אין מסלול חוקי בו הנסיך יכול ללכת.
קלט:
drm = [[2, 0, 1, 2, 3], [2, 3, 5, 5, 4], [8, -1, 6, 8, 7], [3, 4, 7, 2, 4], [2, 4, 3, 1, 2]], i = 0, j = 0
הפלט המבוקש:
4